cou*_*lix 7 python apache-flex django pyamf
我正在使用PyAMF将动态生成的大图像从Flex传输到Django.在Django方面,我收到encodedb64数据作为参数:
我的物品模型作为图像场.我无法做的是将数据保存为File Django Field.
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)
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为我从StringIO的File对象遗漏了一些属性,如模式,名称等.
我还认为使用StringIO会将图像数据完全加载到内存中,这很糟糕所以我可能会放弃AMF来处理这个特殊情况并使用POST.
你怎么看 ?
在django.core.files.base你可以找到类ContentFile.该类扩展了基本的Django File类,因此您不需要StringIO(尽管ContentFile在内部使用).修改后的save方法如下所示:
from django.core.files.base import ContentFile
def save_item(request, uname, data):
item = Item()
myFile = ContentFile(base64.b64decode(data))
item.preview.save('fakename.jpg', myFile, save=False)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1303 次 |
| 最近记录: |