【问题标题】:Choose the filename of an uploaded file with Django使用 Django 选择上传文件的文件名
【发布时间】:2010-11-17 06:42:58
【问题描述】:
我正在上传图片(由 FileField 表示),我需要在上传这些文件时重命名它们。
我希望它们的格式如下:
"%d-%d-%s.%s" % (width, height, md5hash, original_extension)
我已阅读文档,但不知道是否需要编写自己的 FileSystemStorage 类或自己的 FileField 类或...?一切都如此紧密地联系在一起,我不知道从哪里开始。
【问题讨论】:
标签:
python
django
django-models
【解决方案1】:
您不需要编写自己的 FileStorage 类或任何复杂的东西。
File/ImageFields 上的 'upload_to' 参数可以采用返回要使用的路径/文件的函数。
如何做到这一点已经回答here
【解决方案2】:
阅读本文时,我最初的直觉是,您需要重载模型上的 save 方法,并使用 os.rename() 方法,但这会导致大量开销,而且通常从头到尾都很麻烦.如果您只是想重命名文件,但不想对其进行任何物理更改(调整大小、复制等),那么我肯定会推荐上述 arcanum 建议的方法。