Google app engine 从服务器下载文件(并获取错误消息)
我正在关注这一点。文件已成功上载。但当我试图下载那个文件时。然后我收到错误消息。上传Google app engine 从服务器下载文件(并获取错误消息),google-app-engine,Google App Engine,我正在关注这一点。文件已成功上载。但当我试图下载那个文件时。然后我收到错误消息。上传docx/doc/ppt/pptx/txt文件 错误 UnicodeDecodeError:“utf8”编解码器无法解码位置17中的字节0x9f:无效的开始字节 下载图像处理程序 def get(self, id): event = Event.get_by_id(int(id)) if event: #print event.file_type self.resp
docx/doc/ppt/pptx/txt
文件
错误
UnicodeDecodeError:“utf8”编解码器无法解码位置17中的字节0x9f:无效的开始字节
下载图像处理程序
def get(self, id):
event = Event.get_by_id(int(id))
if event:
#print event.file_type
self.response.headers['Content-Type'] = event.file_type
self.response.out.write(event.file_contents)
更新#3
当我打印blob\u info.key()
时。然后我得到8QAnEy4nH2OOKM4KQvtF7g==
。没有这些标志,/serve/8QAnEy4nH2OOKM4KQvtF7g
URL就可以工作。但是为什么要加上符号呢
UploadHandler
Class
class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload_files = self.get_uploads('file') # 'file' is file upload field in the form
blob_info = upload_files[0]
self.redirect('/serve/%s' % blob_info.key())
传棒键
localhost:8080/serve/8QAnEy4nH2OOKM4KQvtF7g
更新2
使用UploadHandler
上载文件。和Bob key
也保存在我的模型中。但是ServeHandler
不起作用。我找不到404
ServeHandler
class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
def get(self, resource):
resource = str(urllib.unquote(resource))
blob_info = blobstore.BlobInfo.get(resource)
self.send_blob(blob_info)
网址
webapp2.Route(r'/serve/([^/]+)?',handler=my.ServeHandler,name='server'),
更新1
txt
文件工作正常。还有一件事。我不想将文件的上下文打印到屏幕上。我想当用户点击文件名,然后该文件下载到电脑。有可能吗?谢谢Nicks的博客现在有点老了——为什么不把你的文件放到blobstore中,然后用send_blob下载呢@好的,谢谢。除了ServeHandler
之外,一切正常。请你帮忙好吗?请参阅更新。thanksHow您是否将blob密钥传递给下载处理程序?@StuartLangley问题已更新。您可以检查。。。。