Python Webapp2请求应用程序/八位字节流文件上载

Python Webapp2请求应用程序/八位字节流文件上载,python,file-upload,content-type,webapp2,Python,File Upload,Content Type,Webapp2,我正试图通过ajax将一个文件从表单上传到s3。我在客户端使用fineuploader,在服务器端使用webapp2。它在请求中以qqfile的形式发送参数,我可以在请求头中看到图像数据,但我不知道如何在不使用多部分编码的浏览器中获取它 这就是我在标准html表单post中使用multipart的方式 image = self.request.POST["image"] 这将为我提供图像名称和图像文件 目前,我只能获取图像文件名,而不能使用 image = self.request.get_a

我正试图通过ajax将一个文件从表单上传到s3。我在客户端使用fineuploader,在服务器端使用webapp2。它在请求中以qqfile的形式发送参数,我可以在请求头中看到图像数据,但我不知道如何在不使用多部分编码的浏览器中获取它

这就是我在标准html表单post中使用multipart的方式

image = self.request.POST["image"]
这将为我提供图像名称和图像文件

目前,我只能获取图像文件名,而不能使用

image = self.request.get_all('image')
[u'image_name.png']
当使用POST时,我得到一个警告,内容头是application/octet流

<NoVars: Not an HTML form submission (Content-Type: application/octet-stream)>


如何在GAE之外的webapp2中实现BlobStoreHandler?

我不太清楚您的问题代码。但你可以举个例子


看一看尼克·约翰逊的这篇文章。他在客户端使用appengine blobstore和Plupload实现了一个dropbox服务:

我最终使用fineuploader将一个多部分编码的表单发送到我的处理程序端点

在处理程序中,我可以简单地引用POST,然后将FieldStorage对象读入cStringIO对象

image = self.request.POST["qqfile"]
imgObj = cStringIO.StringIO(image.file.read())

# Connect to S3...
# create s3 Key 
key = bucket.new_key("%s" % uuid.uuid4());

# guess mimetype for headers
file_mime_type = mimetypes.guess_type(image.filename)
if file_mime_type[0]:
   file_headers = {"Content-Type": "%s" % file_mime_type[0]}
else:
   file_headers = None

key.set_contents_from_string(imgObj.getvalue(), headers=file_headers)

key_str = key.key

#return JSON response with key and append to s3 url on front end.
注:qqfile是fineuploader使用的参数


我在假装进度,但这对于我的用例来说没问题,不需要BlobStoreUploadHandler。

我的问题是如何使用webapp2处理八位字节流请求