@app.route('/download', methods=['GET'])
def download():
run_id = request.args.get('run_id')
fp = BucketHelper().get_report_fp(run_id)
send_file(fp,
as_attachment=True,
mimetype='application/vnd.ms-excel',
attachment_filename="test.xlsx")
import cloudstorage
from google.appengine.api import app_identity
class BucketHelper:
def __init__(self):
self.bucket_path = '/my-bucket/path'
def get_report_fp(self, run_id):
filename = "{}/my_report_{}.xlsx".format(self.bucket_path, run_id)
return cloudstorage.open(filename, mode='rb')
该文件不被命名为“test.xlsx”,而是被命名为“download”,并且不被识别为Excel文件。
任何帮助都很感激。
该文件被称为download
,因为这是您设置的路径。
@app.route('/download', methods=['GET'])
def download():
如果您没有能力控制用户的请求,您应该能够通过使用重定向来定义一个假文件名,否则只需使用定义的新路由进行下载。
试试这样的东西?
...
from flask import redirect
...
@app.route('/download', methods=['GET'])
def download_redirect():
redirect('/download/test.xlsx')
@app.route('/download/<filename>', methods=['GET'])
def download(filename):
run_id = request.args.get('run_id')
fp = BucketHelper().get_report_fp(run_id)
send_file(fp,
as_attachment=True,
mimetype='application/vnd.ms-excel',
attachment_filename="test.xlsx")
问题是当我使用将文件名设置为 在显示对话框之前,并且在显示对话框时,我将文件保存为并且再次使用,我将获得-在这里它应该返回我选择保存到的文件的名称。 有人能告诉我我在这里做错了什么吗?此外,如果您有更好的跨平台解决方案显示保存文件对话框,请与我分享。
问题内容: def size_of_dir(dirname): print(“Size of directory: “) print(os.path.getsize(dirname)) 是有问题的代码。dirname是一个目录,其中包含 130个 文件,每个文件约 1kb 。当我调用此函数时,它返回 4624 ,这 不是 目录的大小…为什么? 问题答案: 此值(4624B)代表的大小 文件 是 描
本文向大家介绍如果文件名是UTF-8,则使PHP pathinfo()返回正确的文件名,包括了如果文件名是UTF-8,则使PHP pathinfo()返回正确的文件名的使用技巧和注意事项,需要的朋友参考一下 除Latin-1外,大多数核心PHP函数均不处理字符集。但是在'pathinfo'之前,放置'setlocale'可以用于返回正确的文件名,即使它是UTF-8编码的。 默认情况下,它以'C'语
我正在使用postgis计算两个地理坐标之间的距离。 它返回给我53536.743496517米,大约等于54公里,但实际距离是103公里,我通过http://boulter.com/gps/distance/ 我在询问中是否做错了什么?
我正在尝试在代码中使用NSPredicate搜索名称。搜索工作正常,但不会返回适当的结果。当我搜索一个名称(例如“Colin”)时,它会返回表中的所有其他名称或另一个名称(例如“Mike”),但如果我输入一个不存在的随机字符串,它会返回:“找不到结果”。当我在搜索栏中键入一个名字(例如Lisa)时,我希望它能找到这个名字(Lisa)并返回它,但它没有这样做 这是我的代码: 自己name返回表中的所