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问题已更新。您可以检查。。。。