【问题标题】:Django request.FILES is emptyDjango request.FILES 为空
【发布时间】:2012-02-13 07:02:22
【问题描述】:

我正在向 django app REST 接口发出文件上传 POST API 请求。此请求来自另一个 django 应用程序视图,该视图正在从表单接收文件。我正在使用海报模块

image = request.FILES['image']
from utils.poster.encode import multipart_encode
from utils.poster.streaminghttp import register_openers
register_openers()
datagen, headers = multipart_encode({'file':image.read()})
response = urlfetch.fetch(url="url",
            payload=datagen,
            method=urlfetch.POST,
            headers=headers)

我是否缺少任何标题? django 如何使用 multipart/form-data 处理请求? 这是我得到的错误。

multipart_yielder instance has no attribute '__len__'

【问题讨论】:

    标签: django


    【解决方案1】:

    GAE 的 UrlFetch 无法将 multipart_encode() 返回的输出用于有效负载。 UrlFetch.fetch在payload上执行len()multipart_encode返回的payload是Python生成器,一般不支持len()

    解决方法是先创建一个有效负载字符串,但它会为大文件占用大量内存。

    datagen, headers = multipart_encode({'file':image.read()})
    data = str().join(datagen)    
    response = urlfetch.fetch(url="url",
            payload=data ,
            method=urlfetch.POST,
            headers=headers)
    

    问题已报告here

    【讨论】:

      猜你喜欢
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 2014-12-28
      • 2021-05-20
      • 2012-02-13
      • 2011-01-01
      • 1970-01-01
      • 2015-04-12
      相关资源
      最近更新 更多