article中上传静态图片时重命名

2019年11月17日 22:44 阅读 1337 评论 0

编写函数当图片保存时自动修改文件名和后缀

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)

当我们上传文件的时候就会自动调用这个函数,来重新编写文件的后缀名。

原创文章,转载请注明出处:https://boywithacoin.cn/article/articlezhong-shang-chuan-jing-tai-tu-pian-shi-zhong-ming-ming/


您尚未登录,请 登录注册 后评论
    0 人参与 | 0 条评论
    暂时没有评论,欢迎来尬聊!