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
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!