从servi发布图像时Django中的文件处理

2024-09-30 14:34:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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。在

你觉得怎么样?在


Tags: 数据django图像imgdata参数save动态
1条回答
网友
1楼 · 发布于 2024-09-30 14:34:38

django.core.files.base中可以找到类ContentFile。该类扩展了基本的DjangoFile类,因此您不需要StringIO(尽管ContentFile在内部使用)。修改后的保存方法如下所示:

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)

相关问题 更多 >