2011-07-28 64 views
0

客戶端(JavaScript)上傳與XMLHttpRequest應用:如何使用GAE/python處理直接文件上傳?

var req = new XMLHttpRequest(); 
    req.open('POST', my_app_url, false); 
    req.setRequestHeader("Content-Length", req.length); 
    req.sendAsBinary(req.binary); 

我使用的數據存儲在服務器端(不BLOBSTORE)。 如何將上傳的文件保存到數據存儲?我發現ServletFileUpload可以與Java一起使用。但如何做到這一點與Python?

回答

3

您應該使用self.request.body

class YourUploadHandler(webapp.RequestHandler): 
    def post(self): 
     your_binary_content = self.request.body 
0

如果你的意思是在appengine方面,你只需要有一個blobproperty。因此,像...

class SomeEntity(db.Model): 
    file_data = db.BlobProperty() 

class AddData(webapp.RequestHandler) 
    def post(self): 
     data = self.request.get("filedata") 
     e = SomeEntity(file_data = db.Blob(data)) 
     e.put() 

作爲一個說明,我不知道,如果你上面貼發送請求是正確的,但你可以用一個簡單的HTML表單上傳的文件,像這樣的代碼:

<form action="/url_to_adddata_handler/" method="post"> 
    <input type="file" name="filedata"> 
    <input type="submit" value="Submit"> 
</form> 
+0

我沒有形式。所以我不能使用'self.request.get(「filedata」)',但看起來像'self.request.body'做我需要的;)。 –

相關問題