对付布劳斯特_handlers.BlobstoreUploadHand

2024-07-04 03:07:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python在GAE上写iPad应用的服务器端。其中一个功能是在服务器上保存文件。我看了blobstore的例子,我可以写一个类似的测试。但是,在我的例子中,我必须将过程分为两个步骤,一个调用生成URL,另一个调用通过blobstore实际接收文件_handlers.BlobstoreUploadHandler. 问题是我得到的链接blobstore.create_上传\u url('/upload')似乎已损坏,找不到我的上载处理程序。目前我测试这一点的方法是通过一个静态html文件,在这个文件中,我手动地将url更改为我从中获得的urlblobstore.create_上传\u url('/upload') 你知道为什么一旦我把过程分成两段,同样的代码就停止工作了吗?在

代码: 下面是一个返回url的函数,该函数运行良好。在

class GetUploadURL(webapp2.RequestHandler):
# this function will return the upload url to be used in a form
  def get(self):

        params=['session_id']

        has_params, missing_param = has_all_parameters(self,params)     

        if not has_params:
            show_error(self, MISING_PARAMS_ERROR, params)
            return      

        user = validate_session(self)
        if not user:
            show_error(self, UNKNOWN_SESSION_ID)
            return 

        upload_url = blobstore.create_upload_url('/upload')
        ret_dict = { STATUS_CODE :STATUS_OK ,
                        UPLOAD_URL :  upload_url 
                       }`enter code here`
        self.response.out.write(json.dumps(ret_dict))  

这是我在本地使用的html,通过调用上面函数得到的长链接来更改上传url

^{pr2}$

这里是当我点击提交时,它甚至不能到达服务器,就像一个断开的链接。在

这是一个应该接收post但从未调用的函数

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
  def post(self):
        params=['session_id']

        has_params, missing_param = has_all_parameters(self,params)     

        if not has_params:
            show_error(self, MISING_PARAMS_ERROR, params)
            return      

        user = validate_session(self)
        if not user:
            show_error(self, UNKNOWN_SESSION_ID)
            return 

        upload_files = self.get_uploads('file')  # 'file' is file upload field in the form
        blob_info = upload_files[0]
        file1 = UserFile()
        file1.user = user
        file1.file_name= blob_info.filename
        file1.file_key = blob_info.key()
        file1.put()
        ret_dict = {STATUS_CODE: STATUS_OK,'file_key': str(file1.file_key)}
        self.response.out.write(json.dumps(ret_dict)) 

谢谢你的帮助


Tags: 文件函数selfurlreturnifsessionnot

热门问题