flask实现文件下载传文件名和不传文件名两种

传文件名的

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Oct 23 19:53:18 2021
@author: huyi
"""

from flask import Flask, request, make_response, send_from_directory
from gevent.pywsgi import WSGIServer
from gevent import monkey

# 将python标准的io方法,都替换成gevent中的同名方法,遇到io阻塞gevent自动进行协程切换
monkey.patch_all()
app = Flask(__name__)


@app.route("/download", methods=['GET'])
def download_file():
    get_data = request.args.to_dict()
    file_path = get_data.get("file_name")

    response = make_response(
        send_from_directory(r'D:\myFlask', file_path, as_attachment=True))
    response.headers["Content-Disposition"] = "attachment; filename={}".format(
        file_path.encode().decode('latin-1'))
    return response


if __name__ == '__main__':
    WSGIServer(('0.0.0.0', 8080), app).serve_forever()

不传文件名

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Oct 23 19:53:18 2021
@author: huyi
"""

from flask import Flask, request, make_response, send_from_directory
from gevent.pywsgi import WSGIServer
from gevent import monkey

# 将python标准的io方法,都替换成gevent中的同名方法,遇到io阻塞gevent自动进行协程切换
monkey.patch_all()
app = Flask(__name__)


@app.route("/download", methods=['GET'])
def download_file():
    # get_data = request.args.to_dict()
    file_path = "data.txt"

    response = make_response(
        send_from_directory(r'D:\myFlask', file_path, as_attachment=True))
    response.headers["Content-Disposition"] = "attachment; filename={}".format(
        file_path.encode().decode('latin-1'))
    return response


if __name__ == '__main__':
    WSGIServer(('0.0.0.0', 8080), app).serve_forever()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值