Appengine - 几个上传处理程序

时间:2013-02-28 10:12:08

标签: python google-app-engine file-upload image-uploading

在python中为gae设置不同的上传处理程序的最佳方法是什么?

class MainHandler(webapp.RequestHandler):
    def get(self, test):
        self.response.out.write(test)
        upload_url = blobstore.create_upload_url('/upload')
        self.response.out.write('<html><body>')
        self.response.out.write('<form action="%s" method="POST" enctype="multipart/form-data">' % upload_url)
        self.response.out.write("""Upload File: <input type="file" name="file"><br>         <input type="submit" name="submit" value="Submit"> </form></body></html>""")



class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
    def post(self):
        upload_files = self.get_uploads('file')
        blob_info = upload_files[0]
        self.redirect('/')

此代码工作正常,但始终在url / upload

上调用Uploadhandler
 upload_url = blobstore.create_upload_url('/another_url') 

upload_url仍然引用/上传,那么从表单A重定向到上传处理程序A以及从表单B重定向到上传处理程序B的最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

你错过了网址开头的“/ _ah /”吗? Afaik,create_upload_url总是指向/ _ah / upload / xxxx(这就是你上传到的url),然后调用内部重定向到你提供的url(/ upload或/ another_url)。

答案 1 :(得分:0)

uploadhandler收到上传文件的回调。要传递其他信息,例如webapp2会话数据,您可以使用多重继承并使用会话数据来找出要使用的重定向。

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler, webapp2.RequestHandler):

....