看一下一些用于 AJAX 上传的 JS 解决方案 - 具体来说,Plupload 可以连接到 App Engine blobstore,为您提供多重上传支持、AJAX 上传以及上传小部件/进度条等选项。
实际上,@尼克约翰逊 https://stackoverflow.com/users/12030/nick-johnson有一个完整的博客文章 http://blog.notdot.net/2010/04/Implementing-a-dropbox-service-with-the-Blobstore-API-part-3-Multiple-upload-support指导您完成这些步骤。
其要点是:
1)下载并安装Plupload http://www.plupload.com/
2) 创建一个返回生成的上传 URL 的处理程序。像这样的事情:
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 以获取 Blob 上传 URL
uploader.bind('UploadFile', function(up, file) {
$.ajax({
url: '/get_upload_url',
async: false,
success: function(data) {
up.settings.url = data;
},
});
有关更详细的说明,请查看该博客文章。 Nick 有一个非常棒的演练,它绝对帮助我设置了 Plupload + Blobstore。