我正在使用PIL来调整上传文件的大小,使用以下方法:
然而,这给我带来了“read”错误。
跟踪:
异常类型:AttributeError at /myapp/editAvatar 异常值: read
有任何想法如何解决?我已经付出了几个小时的努力! 谢谢!
Nikunj
def resize_uploaded_image(buf):
imagefile = StringIO.StringIO(buf.read())
imageImage = Image.open(imagefile)
(width, height) = imageImage.size
(width, height) = scale_dimensions(width, height, longest_side=240)
resizedImage = imageImage.resize((width, height))
return resizedImage
然后我在主视图方法中使用这种方法来获取调整大小的图像:
image = request.FILES['avatar']
resizedImage = resize_uploaded_image(image)
content = django.core.files.File(resizedImage)
acc = Account.objects.get(account=request.user)
acc.avatar.save(image.name, content)
然而,这给我带来了“read”错误。
跟踪:
异常类型:AttributeError at /myapp/editAvatar 异常值: read
有任何想法如何解决?我已经付出了几个小时的努力! 谢谢!
Nikunj
save()
到一个StringIO对象中,使用某种编码(例如PNG)。别忘了在将文件写入StringIO后要执行seek(0)
!顺便说一句:为什么不直接从buf
中读取,避免额外的包装StringIO呢? - Cameron