gpt4 book ai didi

python - 使用 Google App Engine Blobstore 下载的文件名

转载 作者:太空狗 更新时间:2023-10-29 18:25:55 26 4
gpt4 key购买 nike

我正在使用 Google App Engine Blobstore 来存储一系列文件类型(PDF、XLS 等),并试图找到一种机制,通过该机制可以将上传文件的原始文件名(存储在 blob_info 中)用于命名下载的文件,即让用户在保存对话框中看到“some_file.pdf”而不是“very_long_db_key.pdf”。

我在文档中看不到任何允许这样做的内容:

http://code.google.com/appengine/docs/python/blobstore/overview.html

我在其他帖子中看到您可以使用 blob_info 中的信息来设置内容处置 header 的提示。这是实现预期目标的最佳方法吗?

最佳答案

send_blob 函数中有一个可选的“save_as”参数。默认情况下,这设置为 False。将其设置为 True 将导致文件被视为附件(即它将触发“保存/打开”下载对话框)并且用户将看到正确的文件名。

例子:

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,save_as=True)

也可以通过传入一个字符串来覆盖文件名:

self.send_blob(blob_info,save_as='my_file.txt')

如果您想要打开而不是保存某些内容(例如 pdf),您可以使用 content_type 来确定行为:

blob_info = blobstore.BlobInfo.get(resource)
type = blob_info.content_type
if type == 'application/pdf':
self.response.headers['Content-Type'] = type
self.send_blob(blob_info,save_as=False)
else:
self.send_blob(blob_info,save_as=True)

关于python - 使用 Google App Engine Blobstore 下载的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7324895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com