2011-08-25 69 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

相关问题