我使用PyAMF将动态生成的大图像从Flex传输到Django。 在Django端,我接收encodedb64数据作为参数:
我的项目模型是imagefield。 我遇到的问题是将数据保存为filedjango字段。在
def save_item(request, uname, data):
""" Save a new item """
item = Item()
img = cStringIO.StringIO()
img.write(base64.b64decode(data))
myFile = File(img)
item.preview.save('fakename.jpg', myFile, save=False)
这不起作用,因为StringIO中的File对象缺少一些属性,比如mode、name等
我还认为使用StringIO会将图像数据完全加载到内存中,这是不好的,所以我可能会放弃AMF来处理这个特殊情况,而使用POST。在
你觉得怎么样?在
在
django.core.files.base
中可以找到类ContentFile
。该类扩展了基本的DjangoFile
类,因此您不需要StringIO(尽管ContentFile在内部使用)。修改后的保存方法如下所示:相关问题 更多 >
编程相关推荐