article 中上传静态图片时重命名
小工具:编写函数当图片保存时自动修改文件名和后缀
编写函数当图片保存时自动修改文件名和后缀
apps/blog/model.py:
img = models.ImageField(upload_to='media/article',
default='media/artile/default.png', storage=ImageStorage())
将img中添加一个storage方式,我们重构一下图片存储的方式:
from django.core.files.storage import FileSystemStorage
。。。。。
class ImageStorage(FileSystemStorage):
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 hashlib
#获取文件后缀
ext = '.bmp'
#文件目录
d = os.path.dirname(name)
#定义文件夹名称
fn = time.strftime(
'%Y%m%d%H%M%S')
# 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)
当我们上传文件的时候就会自动调用这个函数,来重新编写文件的后缀名。
本作品采用《CC 协议》,转载必须注明作者和本文链接
文章!!首发于我的博客Stray_Camel(^U^)ノ~YO。