flask实现下载文件、前后端
采用前后端分离的过程中,前端只能下载静态文件中的文件或者url下载文件。但是,一般情况下文件要么是远程或者存在于其他文件夹。这种情况就需要采用后端预先下载文件,传递给前端。
flask有几种文件传输方式,比如send_file、send_file_dictionary或者下面这种方式。这几种方式返回的数据不能被二次格式化,只能原样返回。
flask后台
link 是文件路径或者链接
temp_path是下载的文件临时路径urllib.urlretrieve(link,temp_path, urlcallback)# # content = send_file(temp_path , as_attachment=True)# return True, make_response(send_from_directory(base_path, tool_name, as_attachment=True))raw_bytes = ""with open(temp_path, 'rb') as r:for line in r:raw_bytes = raw_bytes + lineresponse = make_response(raw_bytes)response.headers['Content-Type'] = "application/octet-stream"response.headers['Content-Disposition'] = "inline; filename=" + tool_nameprint responsedef urlcallback(a, b, c):"""call back functiona,已下载的数据块b,数据块的大小c,远程文件的大小"""prec = 100.0 * a * b / cif 100 < prec:prec = 100cls.g_logger.info("%.2f%%" % (prec,))
前端
let content = response.request.response;
let name = row.tool_name;let url = window.URL.createObjectURL(new Blob([content])); //处理文档流console.log(url);// let fileTye = url.match(/.+\/(.+)$/)[1];let link = document.createElement("a");link.style.display = "none";link.href = url;link.download = name;document.body.appendChild(link);link.click();document.body.removeChild(link);
flask实现下载文件、前后端相关推荐
- Flask+Axios+jQuery构建前后端通信的小例子
比较暴力但好理解的方法,下面详细说一下. 工具准备 Flask pip install flask Axios https://cdnjs.cloudflare.com/ajax/libs/axios ...
- Flask使用ajax进行前后端交互
ajax前后端交互的使用已经非常普及了, 这种数据交互方式比表单提交数据带给用户的使用体验更好一些.同时,利用ajax交互时数据传输一般使用json,我们可以很方便的管理我们所需要的数据.只需要定义好 ...
- 使用EasyExcel导入、根据模板下载(附前后端代码)
使用以上导包如果报错 NoClassDefFoundError,可能需要引入cglib包 1.excel的导入 前端代码: : 由于前端type="file"的样式固定,可以隐藏i ...
- springboot flask php,使用Vue,Spring Boot,Flask,Django 完成Vue前后端分离开发(二)
使用Vue完成前后端分离开发(二) Bravery never goes out of fashion. 勇敢永远不过时. 前面简单说了一下 Vue 项目的搭建和项目的大致页面,这里讲一下 Djang ...
- vue axios 实现 文件流下载(前后端分离跨域问题的解决)
前端代码 后端以流的形式返回 单个文件下载 @RequestMapping(value = "download", method = RequestMethod.POST)@Api ...
- Flask 生成下载文件
1 后台程序直接生成文件内容 from flask import make_response @app.route('/testdownload', methods=['GET']) def test ...
- 关于下载(前后端)第1部分
1.前端点击下载 <a href="/static/images/myimg.jpg" download="picture">下载图片</a& ...
- spring boot +ajax上传文件前后端分离完整实现示例代码
1.案例场景 此处,我这里需要前端实现上传身份证OCR识别证件号码. 2.前端实现方式 2.1页面按钮 <div class="title-icon"></div ...
- h5ad文件前后端可视化探索
一.需求 将h5ad文件中的数据转化为可在浏览器中展示的散点图.热力图.盒须图.小提琴图,后端使用python进行开发. 二.难点 h5ad大文件读取速度慢 百万级别散点前端展示性能差,甚至会导致崩溃 ...
最新文章
- [ZZ]Map/Reduce hadoop 细节
- 编写高质量代码改善C#程序的157个建议——建议87:区分WPF和WinForm的线程模型...
- Apache之三种工作模式和配置性能优化
- 模板:K-D tree
- jboss eap 7_EAP 7 Alpha和Java EE 7入门
- java--xml文件读取(SAX)
- Git(6)-- 记录每次更新到仓库图文版(git clone、status、add、diff、commit、rm、mv命令详解)
- 网络通信之通过get/post方式提交参数给web应用
- Third《高质量程序设计指南—C++/C语言》(第二版)
- 研发质量管理6大根基
- android ftp播放器,超强本地播放器一款支持samba、FTP/Windows共享服务-简单不折腾...
- 优秀程序员的十个习惯
- git:分分钟让你知道如何使用git,上传项目
- Genesis10.0 安装教程
- Android 2017面试题整理
- Centos7安装go 1.18.2并配置goproxy
- 用OpenCV和OCR识别图片中的表格数据
- 你们有计算机室吗用英语回答,写几条电脑室规则。 用英语。
- Flume 安装使用(自己总结) 吐槽CSDN 对Markdown 的mermaid 语法支持不完整
- 如何打破996模式下的成长魔咒?