2012-11-29 91 views
0

我想通過ajax從表單上傳文件到s3。我在客戶端使用fineuploader http://fineuploader.com/,在服務器端使用webapp2。它將請求中的參數作爲qqfile發送,我可以在請求頭中看到圖像數據,但我不知道如何在不使用多部分編碼的瀏覽器中將其返回。Webapp2請求應用程序/八位字節流文件上傳

這就是我在標準html表單文章中使用multipart進行的操作。

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

這個使用POST我得到的時候給我的映像名稱和圖像文件

目前我只能夠與

image = self.request.get_all('image') 
[u'image_name.png'] 

獲取圖像文件名後面沒有數據關於正在申請的內容標題的警告/八位字節流

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

我該如何impl在GAE之外的webapp2中使用BlobStoreHandler?

回答

0

我結束了使用fineuploader http://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。

相關問題