以编程方式将图像保存到Django ImageField 2

时间:2012-07-01 04:26:00

标签: python django imagefield

我已经阅读了很多答案,并在shell中尝试了所有这些,但不想正确保存本地图像,他会截断文件。当图像大小为400kb时,他在媒体目录中创建大小为10-30kb的文件。我不知道为什么。例如,我有路径d:/1.png的图像。我试过了

from django.core.files import File
fileObject=File(open("d:/1.png"))
object.image.save('1.png',fileObject,True)

fileObject.size显示正确的图像大小,但是object.image.size是不正确的文件,他保存的内容不完整。 我也试过

from django.core.files.temp import NamedTemporaryFile
temp = NamedTemporaryFile()#with delete=True TypeError: __init__() got an unexpected keywork argument 'delete'
temp.write(open('d:/1.png').read())
temp.flush()
f=File(temp)#f.size not correct
object.image.save('1.png',f,True)
and object.image.size and file not correct, file not full.

我尝试使用StringIO,但这也行不通。我不知道是什么尝试正确保存这些图像。 请帮忙。

1 个答案:

答案 0 :(得分:1)

你必须将模式改为二进制

fileObject = File(open(“d:/1.png”,mode =“rb”))