我有以下代码在我处理的 Django 项目中为我处理图像上传:
def upload_handler(source):
fd, filepath = tempfile.mkstemp(prefix=source.name, dir=MEDIA_ROOT)
with open(filepath, 'wb') as dest:
shutil.copyfileobj(source, dest)
return MEDIA_URL + basename(dest.name)
上传部分一切正常,但 mkstemp 在扩展后使用额外的 6 个随机后缀保存我的图像(例如 test.png -> test.pngbFVeyh)。即使我在第二个代码行中传递后缀,它也会附加它,但也会附加 6 个随机字符。正在发生的其他奇怪的事情是,在上传文件夹(在我的情况下为 MEDIA_ROOT)中,它与另一个与图片同名的空纯文本文档类型文件(例如 test.pngbFVeyh)一起创建。我已阅读有关 mkstemp 的文档,但没有找到任何替代解决方案。