django上传图片简单验证以及自动修改图片名称

django实现文件(图片)上传之后自动修改名称以及页面上传图片时的各种提醒:

1、先在你项目中添加一个文件夹如:system 在文件夹下添加__init__.py 和storage.py文件,并在storage.py中添加如下代码:

# -*- coding:utf-8 -*-
from django.core.files.storage import FileSystemStorage
from django.http import HttpResponse

class ImageStorage(FileSystemStorage):
    from django.conf import settings

    def __init__(self,location=settings.MEDIA_ROOT, base_url=settings.MEDIA_URL):
        #初始化
        super(ImageStorage,self).__init__(location,base_url)

    def _save(self,name,content):
        #重新文件上传
        import os,time,hashlib

        #获取文件后缀
        ext = os.path.splitext(name)[1]

        #文件目录
        d = os.path.dirname(name)

        #定义文件夹名称
        fn = hashlib.md5(time.strftime(‘%Y%m%d%H%M%S‘).encode(‘utf-8‘)).hexdigest()
        name = os.path.join(d,fn+ext)

        #调用父类方法
        return super(ImageStorage,self)._save(name,content)

2、在models.py文件中添加如下代码:

from django.db import models
from datetime import datetime
from system.stroage import ImageStorage
# Create your models here.

#文章咨询表
class Article(models.Model):
    title = models.CharField(max_length=250, null=False, verbose_name=‘标题‘, unique=True)
    content = models.TextField(verbose_name=‘内容‘)
    add_time = models.DateTimeField(verbose_name=‘添加时间‘, default=datetime.now)
    update_time = models.DateTimeField(verbose_name=‘修改时间‘, null=True)
    state = models.IntegerField(verbose_name=‘状态‘, default=1)
    cat_id = models.ForeignKey(Category, on_delete=models.CASCADE)
    t = datetime.now()
    cover_map = models.ImageField(verbose_name=‘缩列图‘,upload_to=‘article/%Y/%m/%d‘,default=‘1.png‘,storage=ImageStorage())

    class Meta:
        verbose_name = ‘文章‘
        ordering = [‘-add_time‘]

    def __str__(self):
        return self.title

    def delete(self, using=None, keep_parents=False):
        print(1111)

原文地址:https://www.cnblogs.com/sunshenggang/p/9572856.html

时间: 2024-10-12 16:00:02

django上传图片简单验证以及自动修改图片名称的相关文章

MATLAB批量修改图片名称

申明:转载请注明出处. 设在“D:\UserDesktop\pic\”目录下有很多张格式为jpg照片,命名不规则,如图. 现在用MATLAB批量修改所有图片的命名格式,改为1.jpg,2.jpg,.... 1 path = 'D:\UserDesktop\pic\'; 2 D = dir([path '*.jpg']);//图片路径 3 for i = 1:length(D) 4 a = imread([path D(i).name]);//批量读取图片名称 5 system(['ren 'a'

asp.net上传图片文件自动修改图片大小代码

#region 图片缩放 /// <summary> /// 图片缩放 /// </summary> /// <param name="savePath">图片相对路径</param> /// <param name="fileName">图片名称</param> /// <param name="destWidth">缩放宽度</param> ///

考试系统维护-批量修改图片名称

英语考试,按照老师的要求需要添加学生图片头像!就是让学生登录自己的信息的时候能够看到自己的头像!效果图如下:(照片省略) 其实添加进去很容易,不过就是弄个字符串,按照输入的学号来选择自己的照片就好!前几天的时候自己尝试了,不过由于当时没有全局观,并没有仔细看清图片的名字,最后仔细观察才知道,原来老师给的考试号并没有什么规律,纯属是高考时候的高考号啊!不过这可就犯难了!考生登陆考试系统都是根据各自的学号登陆的,这图片的名字直接使用考试号登记的,和之前的就不相吻合了!所以就想到了'批量修改',其实很

C#根据execl批量修改图片名称

做这个是出于有这个需求由于图片太多,一个个对着execl来改的话需要大量的时间且一不小心可能就改错导致图片放到服务器上无法显示,学会了一些编程,你就可以轻松解决此类问题.为了节省时间提高工作的效率.学编程好处远远不仅在于此.好好学吧.任重道远. 第一.什么上下文对象和统计受影响的数量: DataContext db = new DataContext(); private int materiel_count = 0; //开始的记录数 第二.读取execl表 public DataSet Ex

SpringMVC 上传图片保存到服务器 同时更改图片名称保存至数据库

@RequestMapping("upload") public void upload(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request,HttpServletResponse response, ModelMap model){ System.out.println("开始"); // String fi

批量修改图片名称

<?php // glob() 返回指定目录下的文件名以及目录 $arr = glob("img/*.jpg"); $time = time(); $i = 100001; // 循环遍历 foreach($arr as $file) { // 获取图片后缀名 $ext = pathinfo($file,PATHINFO_EXTENSION); // 确定图片的新名字 $name = $time.$i++ . "." . $ext; // 重命名 rename

python批量修改图片名称

1 import os 2 import re 3 import sys 4 path = r"C:\Users\liyq\Desktop\python-img\img" 5 fileList = os.listdir(path) # 待修改文件夹 6 print("修改前:" + str(fileList)) # 输出文件夹中包含的文件 7 os.chdir(path) # 将当前工作目录修改为待修改文件夹的位置 8 num = 1 # 名称变量 9 for fi

JS 下载网络图片,并且修改图片名称

使用技术: NodeJS gitHub地址: https://github.com/smallwhy/img-load-uptname 1.新建项目img-load-uptname 2.打开项目安装cheerio npm install cheerio 3.安装request npm install request 4.新建index.html <html> <head> <meta charset="utf-8"> </head> &l

Ckeditor与Ckfinder的配合使用,上传图片、水印、修改图片名字为当前日期 asp.net

为了配置出来上传功能,并且还添加水印,修改图片的名字为日期,真的头疼了很久,现在来分享一下自己所做的,也算一点小小的成就吧,顺带帮帮很多还在弄这个的猿们.我是分别用了两种方法.先说低版本的Version 2.0, September 2011,昨天配置好了.先认识一下ckeditor跟ckfinder的区别吧,cke呢只要是文本编辑器,单不具备上传的功能,所以有加了ckf,接下来详细说明. 1.  现在官网里面下好对应的版本,把它添加到项目中,如下: 2.然后就去配置ckeditor的confi