失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > django如何给上传的图片重命名(给上传文件重命名)

django如何给上传的图片重命名(给上传文件重命名)

时间:2021-11-17 12:43:30

相关推荐

django如何给上传的图片重命名(给上传文件重命名)

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

# -*- coding: UTF-8 -*-from django.core.files.storage import FileSystemStoragefrom django.http import HttpResponseclass ImageStorage(FileSystemStorage):from django.conf import settingsdef __init__(self, location=settings.MEDIA_ROOT, base_url=settings.MEDIA_URL):# 初始化super(ImageStorage, self).__init__(location, base_url)# 重写 _save方法 def _save(self, name, content):

#name为上传文件名称import os, time, random# 文件扩展名ext = os.path.splitext(name)[1]# 文件目录d = os.path.dirname(name)# 定义文件名,年月日时分秒随机数fn = time.strftime('%Y%m%d%H%M%S')fn = fn + '_%d' % random.randint(0,100)# 重写合成文件名name = os.path.join(d, fn + ext)# 调用父类方法return super(ImageStorage, self)._save(name, content)

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

from system.storage import ImageStoragepic=models.ImageField(upload_to='img/%Y/%m/%d',storage=ImageStorage()) #如果上传文件可以将ImageField换为FileField

3、这样就解决了问题,效果如下:

如果觉得《django如何给上传的图片重命名(给上传文件重命名)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。