Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从服务调用发布图像时在Django中的文件处理_Python_Django_Apache Flex_Pyamf - Fatal编程技术网

Python 从服务调用发布图像时在Django中的文件处理

Python 从服务调用发布图像时在Django中的文件处理,python,django,apache-flex,pyamf,Python,Django,Apache Flex,Pyamf,我正在使用将动态生成的大图像从Flex传输到Django。 在Django端,我接收EncodedDB64数据作为参数: 我的项目模型作为一个imagefield。 我很难将数据保存为File Django字段 def save_item(request, uname, data): """ Save a new item """ item = Item() img = cStringIO.StringIO() img.write(base64.b64d

我正在使用将动态生成的大图像从Flex传输到Django。 在Django端,我接收EncodedDB64数据作为参数:

我的项目模型作为一个imagefield。 我很难将数据保存为File Django字段

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中的文件对象缺少一些属性,例如模式、名称等

我还认为使用StringIO会将图像数据完全加载到内存中,这是不好的,因此我可能会放弃使用AMF来处理这种特殊情况,而使用POST


您觉得怎么样?

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

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)