[英]Access the uploaded image file from models.imagefield in Django
[英]How to get image from response and save it in models.ImageField
问这个我意识到这个话题很常见,也许已经多次讨论了。 但它仍然不清楚,所以我试图从响应中获取图像文件,调整大小并将其保存在模型中。 我处理错误:
/ saveimage /'InMemoryUploadedFile'对象中的AttributeError没有属性'get'
我的代码是这样的:
import Image
import cStringIO
from django.core.files.uploadedfile import InMemoryUploadedFile
def get_and_save_image():
file = cStringIO.StringIO()
size = (200,200)
color = (255,0,0,0)
image = Image.new("RGBA", size, color)
image.save(file, format='JPEG')
image_file = InMemoryUploadedFile(file, None, 'foo.jpg', 'jpeg', None, None)
image_file.seek(0)
return image_file
Http响应:
FILES:
some_image = <InMemoryUploadedFile: image.jpg (image/jpeg)>
这是将图像保存到ImageField的正确方法吗? 提前致谢。
您可以通过以下两种方式执行此操作:
将图像保存在models.ImageField中,然后在响应中返回图像的url,您可以在javascript中创建image元素并添加url。
在base64中对图像的数据进行编码并将其作为字符串返回,您可以在前端轻松使用该字符串。 这是一个例子:
后端:
from PIL import Image
from io import BytesIO
import base64
def get_and_save_image():
size = (200,200)
color = (255,0,0,0)
image = Image.new("RGBA", size, color)
img_buffer = BytesIO()
image.save(img_buffer, format='JPEG')
response_string = base64.b64encode(img_buffer.getvalue())
return response_string
前端:
<img src="data:image/jpg;base64,{{ THE_RESPONSE_STRING }}">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.