当前位置: 首页 > news >正文

关于JS触发浏览器流文件下载的方式

前面大家也看到了,我比较喜欢用form提交来下载,虽然会带来一个标签页的问题,但是form支持POST方式提交,传参比GET方式要好用一些,特别是在body里传参数可以不用考虑编码问题,在一些汉字等特殊字符场景中有优势。
如果不用考虑编码方案或者有好的解决方案,仅用query和params就足够的话,那么可以用GET方式的A元素点击或者iframe元素加载来触发浏览器下载。个人推荐iframe方式,基本上这种加载的方式浏览器不会阻止,而A元素模拟点击可能有被浏览器拦截的情况。还有就是注意GET方式是支持缓存的,如果下载还需要SSE通道通知前端,那么注意规避缓存,可以采用在url中附加随机参数来解决。
下面给出一个iframe下载的简单demo

function myFuncDownload(filename) {let iframe = document.createElement('iframe');iframe.src = '/fs/getfile/'+myencode(filename)+"/" + new Date().getTime();iframe.style.display = 'none';document.body.appendChild(iframe);iframe.addEventListener('load', function() { document.body.removeChild(iframe); });
}

这个是采用params传参,带上了时间戳


http://www.mrgr.cn/news/5171.html

相关文章:

  • 深入理解 Go 并发编程--网络 IO
  • CV每日论文--2024.7.25
  • 【Android】在Android中,自定义Toast以实现放中间、加粗字体和红色文本的效果
  • SseEmitter
  • Nginx+certbot 免费Https证书
  • 实现高效研发运营一体化:深度落地DevOps解决方案的探索与实践
  • Wot Design Uni:一个高颜值、轻量化的uni-app组件库,uni-app生态的新宠
  • 2025计算机毕设:50条小众好做的SSM题目推荐【计算机毕设选题推荐】
  • 数学建模之数据分析【七】:对Pandas DataFrame 进行切片
  • LCD 驱动
  • 《python语言程序设计》2018版第8章第2题检查子串, 使用str类的find方法检查一个字符串是否是另一个字符串的子串
  • 商业软件许可证介绍|简单原理探究
  • 6.MySQL的增删改查
  • QT中使用QAxObject类读取xlsx文件内容并显示在ui界面
  • 【K8s】Java项目部署时为什么要用k8s?
  • 身份证OCR-身份证OCR识别-身份证OCR文字识别-身份证识别--身份证图像识别-身份证信息识别接口
  • python实现链表
  • 设计模式-责任链模式
  • Python类的介绍
  • 实现Linux的高可用负载均衡