在Django中选择上传文件的文件名
我正在上传图片(用一个文件字段来表示),我需要在上传时给这些文件重新命名。
我希望它们的格式是这样的:
"%d-%d-%s.%s" % (宽度, 高度, md5哈希值, 原始扩展名)
我看过文档,但我不知道我是否需要自己写一个文件系统存储类,或者自己写一个文件字段类,还是其他的……一切都联系在一起,我不知道从哪里开始。
2 个回答
-1
我一开始看到这个问题时,觉得你需要在模型上重写保存的方法,并使用os.rename()这个方法,但这样做会增加很多负担,从头到尾都挺麻烦的。如果你只是想改一下文件的名字,而不想对文件本身做任何实际的改变(比如调整大小、复制等),那么我绝对推荐上面arcanum提到的方法。
19
你不需要自己写一个复杂的FileStorage类或者其他麻烦的东西。
在File/ImageFields中,有一个叫'upload_to'的参数,它可以接收一个函数,这个函数会返回你想要使用的路径或文件。
关于怎么做,这里已经有人回答过了,具体可以查看这个链接。