2011-08-25 70 views
2

以下代碼完美工作。我唯一擔心的是,我想將下面的代碼轉換爲AJAX/alternative,以便它不需要刷新整個頁面來提交此請求。Blobstore上傳+ Ajax/Alternative

如果可能的話,也包括加載進度條等

<form action="{{ upload_url }}" method="POST" enctype="multipart/form-data"> 

     Upload File: <input type="file" name="file"> <br> 
     <input type="submit" name="submit" value="Submit"> 

     <input type="hidden" name="data1" value="{{ data1 }}"> 
     <input type="hidden" name="data1" value="{{ data2 }}"> 

</form> 
+0

看看[這個答案](http://stackoverflow.com/questions/6428911/blobstore-upload-with-javascript/6429168#6429168)。 –

+0

這裏有問題嗎? –

+0

@尼克約翰遜,抱歉沒有提問號。 – MrCooL

回答

5

看看對AJAX上傳一些JS解決方案 - 具體而言,Plupload可以掛接與App Engine的Blob存儲區的工作,給你多上傳支持,AJAX上傳以及上傳小部件/進度條等的選項。

實際上,@NickJohnson有一個完整的blog post指導您完成步驟。

它的要點是:

1)下載並安裝Plupload

2)創建一個返回生成的上傳網址的處理程序。事情是這樣的:

from google.appengine.ext import webapp 
from google.appengine.api import blobstore 

class BlobstoreURLResponder(webapp.RequestHandler): 

    """ Mapped to the URL /get_upload_url """ 

    def get(self): 
     self.response.headers['Content-Type'] = 'text/plain' 
     self.request.out.write(blobstore.create_upload_url('/blobstore/passthrough')) 

3)胡克Plupload上傳文件

uploader.bind('UploadFile', function(up, file) { 
    $.ajax({ 
     url: '/get_upload_url', 
     async: false, 
     success: function(data) { 
      up.settings.url = data; 
     }, 
    }); 

有關詳細說明之前得到一個blob上傳網址,看看該博客文章。尼克有一個很棒的演練,肯定幫助我設置了Plupload + Blobstore。

+0

它通過了嗎? – gaurav414u

相關問題