python flask send_file上传文件,通过 jquery.js下载
后端路由
@app.route("/download_data_file", methods=['GET', 'POST'])
def download_data_file():
"""
浏览器下载文件接口
通过 flask 的 send_file 发送文件
"""
# 文件名(带扩展名)
info = json.loads(request.form.get('data'))
filename = info['filename']
filepath = info['filepath']
# print(filepath)
# 文件大小
fsize = os.path.getsize(filepath)
response = make_response(send_file(filepath, as_attachment=True))
response.headers["Content-Disposition"] = "attachment; filename={}".format(filename.encode().decode('latin-1'))
response.headers["Content-length"] = fsize
return response
function download_data_btn_func(obj) {
let filename = test.txt;
let filepath = ./test.txt;
let params = {};
params['filepath'] = filepath
params['filename'] = filename
console.log(params)
// 注意:下载文件的ajax 请求 dataType不是'json'。去掉他,ajax会自动适配dataType 属性值
$.ajax({
url: '/download_data_file',
type: 'post',
data: { 'data': JSON.stringify(params) },
success: function (result) {
// 通过模拟一个a 元素下载文件
let blob = new Blob([result]);
let a = document.createElement('a');
let url = window.URL.createObjectURL(blob);
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
},
error: function (result) {
console.log(result)
}
})
}
原文地址:https://blog.csdn.net/qq_38463737/article/details/126687320
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_24284.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。