小工具:編寫函式當圖片儲存時自動修改檔名和字尾
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。