采用前后端分离的过程中,前端只能下载静态文件中的文件或者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实现下载文件、前后端相关推荐

  1. Flask+Axios+jQuery构建前后端通信的小例子

    比较暴力但好理解的方法,下面详细说一下. 工具准备 Flask pip install flask Axios https://cdnjs.cloudflare.com/ajax/libs/axios ...

  2. Flask使用ajax进行前后端交互

    ajax前后端交互的使用已经非常普及了, 这种数据交互方式比表单提交数据带给用户的使用体验更好一些.同时,利用ajax交互时数据传输一般使用json,我们可以很方便的管理我们所需要的数据.只需要定义好 ...

  3. 使用EasyExcel导入、根据模板下载(附前后端代码)

    使用以上导包如果报错 NoClassDefFoundError,可能需要引入cglib包 1.excel的导入 前端代码: : 由于前端type="file"的样式固定,可以隐藏i ...

  4. springboot flask php,使用Vue,Spring Boot,Flask,Django 完成Vue前后端分离开发(二)

    使用Vue完成前后端分离开发(二) Bravery never goes out of fashion. 勇敢永远不过时. 前面简单说了一下 Vue 项目的搭建和项目的大致页面,这里讲一下 Djang ...

  5. vue axios 实现 文件流下载(前后端分离跨域问题的解决)

    前端代码 后端以流的形式返回 单个文件下载 @RequestMapping(value = "download", method = RequestMethod.POST)@Api ...

  6. Flask 生成下载文件

    1 后台程序直接生成文件内容 from flask import make_response @app.route('/testdownload', methods=['GET']) def test ...

  7. 关于下载(前后端)第1部分

    1.前端点击下载 <a href="/static/images/myimg.jpg" download="picture">下载图片</a& ...

  8. spring boot +ajax上传文件前后端分离完整实现示例代码

    1.案例场景 此处,我这里需要前端实现上传身份证OCR识别证件号码. 2.前端实现方式 2.1页面按钮 <div class="title-icon"></div ...

  9. h5ad文件前后端可视化探索

    一.需求 将h5ad文件中的数据转化为可在浏览器中展示的散点图.热力图.盒须图.小提琴图,后端使用python进行开发. 二.难点 h5ad大文件读取速度慢 百万级别散点前端展示性能差,甚至会导致崩溃 ...

最新文章

  1. [ZZ]Map/Reduce hadoop 细节
  2. 编写高质量代码改善C#程序的157个建议——建议87:区分WPF和WinForm的线程模型...
  3. Apache之三种工作模式和配置性能优化
  4. 模板:K-D tree
  5. jboss eap 7_EAP 7 Alpha和Java EE 7入门
  6. java--xml文件读取(SAX)
  7. Git(6)-- 记录每次更新到仓库图文版(git clone、status、add、diff、commit、rm、mv命令详解)
  8. 网络通信之通过get/post方式提交参数给web应用
  9. Third《高质量程序设计指南—C++/C语言》(第二版)
  10. 研发质量管理6大根基
  11. android ftp播放器,超强本地播放器一款支持samba、FTP/Windows共享服务-简单不折腾...
  12. 优秀程序员的十个习惯
  13. git:分分钟让你知道如何使用git,上传项目
  14. Genesis10.0 安装教程
  15. Android 2017面试题整理
  16. Centos7安装go 1.18.2并配置goproxy
  17. 用OpenCV和OCR识别图片中的表格数据
  18. 你们有计算机室吗用英语回答,写几条电脑室规则。 用英语。
  19. Flume 安装使用(自己总结) 吐槽CSDN 对Markdown 的mermaid 语法支持不完整
  20. 如何打破996模式下的成长魔咒?

热门文章

  1. 原画基础:你知道原画需要学些什么内容吗?不知道的快进来看看
  2. Chrome扩展程序(插件),用你开发的脚本在浏览器上随心所欲
  3. 软件测试基础之用例设计方法
  4. Redis简介与基本数据类型
  5. Hudi Clean Policy 清理策略实现分析
  6. Locust(性能测试)
  7. 玩转各大自媒体平台的推荐机制,让你快速上爆文,让你快速月入过万!
  8. linux使用apache搭建http服务器(文件服务器)
  9. Android AnnotationProcessor
  10. 中文书籍资料推荐Spark