实现 Browser 客户端下载 XML 文件功能

后端

  1. 使用 io.BytesIO 方法 创建一个字节缓冲区在不需要磁盘文件的情况下进行文件操作
  2. 打包为 zip 压缩包(上图代码)
  3. in_memory_zip.seek(0) 数据写入ZIP后文件指针会停留在缓冲区的末尾将文件指针重置回开头
  4. make_response() 方法用于创建HTTP响应的函数
  5. .getvalue() 方法返回内存中ZIP文件的完整内容返回给客户端
  6. Content-Disposition : 告诉浏览器或客户端这个响应应该被当作一个附件来处理
  7. Content-Type : 告诉浏览器或客户端响应体包含的是一个ZIP格式的文件

前端

接口部分

responseType: 'blob' 作用 : 服务器响应的内容将被自动处理为一个BLOB对象,随后可以被用来创建下载链接,允许用户下载从服务器接收的二进制数据 重点

代码

打印 blob 为:

URL.createObjectURL() 方法返回一个 DOMString,它是一个临时的、唯一的 URL,指向你提供的 BLOB 或 File 对象

使用 JS 的 document.createElement('a') 方法创建一个临时的元素用来从客户端触发下载

a.href = url 它的 href 属性就是刚才创建的临时 URL

URL.revokeObjectURL(url) 清理通过 URL.createObjectURL() 方法创建的 URL 必要!!!

相关推荐
小菜全16 分钟前
uniapp新增页面及跳转配置方法
开发语言·前端·javascript·vue.js·前端框架
白水清风28 分钟前
关于Js和Ts中类(class)的知识
前端·javascript·面试
前端Hardy29 分钟前
只用2行CSS实现响应式布局,比媒体查询更优雅的布局方案
javascript·css·html
车口1 小时前
滚动加载更多内容的通用解决方案
javascript
艾小码1 小时前
手把手教你实现一个EventEmitter,彻底告别复杂事件管理!
前端·javascript·node.js
Jedi Hongbin4 小时前
Three.js shader内置矩阵注入
前端·javascript·three.js
掘金安东尼5 小时前
Node.js 如何在 2025 年挤压 I/O 性能
前端·javascript·github
得物技术5 小时前
前端日志回捞系统的性能优化实践|得物技术
前端·javascript·性能优化
ZKshun5 小时前
[ 前端JavaScript的事件流机制 ] - 事件捕获、冒泡及委托原理
javascript
薛定谔的算法5 小时前
JavaScript栈的实现与应用:从基础到实战
前端·javascript·算法