Webapp2请求应用程序/octetstream文件上载

2024-05-14 19:16:51 发布

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

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

这就是我在标准的html表单post中使用multipart实现的方法。在

image = self.request.POST["image"]

这给了我图像名和图像文件

目前我只能得到图像文件名,而不是数据

^{pr2}$

当使用POST时,我得到一个关于内容头是application/octet stream的警告

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

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


Tags: 文件数据图像image客户端表单streams3
2条回答

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

看看尼克·约翰逊的这篇文章。{plubst在app中实现了一个plubst引擎

最后我使用了fineuploaderhttp://fineuploader.com/,它将一个多部分编码的表单发送到我的处理程序端点。在

在处理程序中,我可以简单地引用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。在

相关问题 更多 >

    热门问题