我正在用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))
谢谢你的帮助
跑
目前没有回答
相关问题 更多 >
编程相关推荐