位置: IT常识 - 正文

前端几种下载文件的方式(url方式和文件流方式)(前端几种下载文件)

发布时间:2024-01-07
前端几种下载文件的方式(url方式和文件流方式)

推荐整理分享前端几种下载文件的方式(url方式和文件流方式)(前端几种下载文件),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:前端下载软件,前端 下载,前端如何实现下载功能,前端实现下载文件,前端文件下载,前端文件下载,前端几种下载文件类型,前端几种下载文件类型,内容如对您有帮助,希望把文章链接给更多的朋友!

前端实现下载功能是依赖于浏览器特性,而非JS特性 前端如何实现文件下载,防止浏览器自动打开可预览文件 https://blog.csdn.net/weixin_46074961/article/details/105677732

1.location.href 下载文件–window-location-href

对于浏览器不能打开的文件(例如:.rar .doc等)是可以实现文件下载的,但是对于浏览器可以打开的(例如:.txt .xml等)只可以实现预览功能

window.location.href="https://106.14.15.103:8000/downloadFile/test"前端几种下载文件的方式(url方式和文件流方式)(前端几种下载文件)

2.window.open()

Window 接口的 open() 方法,是用指定的名称将指定的资源加载到浏览器上下文(窗口 window ,内嵌框架 iframe 或者标签 tab )。如果没有指定名称,则一个新的窗口会被打开并且指定的资源会被加载进这个窗口的浏览器上下文中。

//后台传来的下载路径url:https://106.14.15.103:8000/downloadFile/test//前端核心代码window.open(url);

很明显这个方法只能将指定路径的资源加载到浏览器里,如果该文件不能被浏览器预览,浏览器就会下载该文件,但是,如果浏览器可以预览该文件呢?是不是这个方法不可以实现?要求下载一个txt文本,用该方法浏览器会直接预览该txt文件。

3.a标签(可以直接下载)

a标签的href属性指定下载文件的路径,需要给a标签添加一个download属性,download指定下载文件保存时的名称。

<a href="https://106.14.15.103:8000/downloadFile/test" download="test.txt">下载</a>

上述三种都是通过加载文件url直接下载,如果后端返回文件流,则需要先转化为url再下载; 另外上述三种方式默认是get方式,如果需要使用post方式且需传参,最好使用第四种方式;

4.文件流下载

1.ajax请求将文件流下载下来2.将下载的文件流转化为blob数据3.通过 window.URL.createObjectURL(blob)将blob转化为url4.通过动态生成a标签 模拟点击事件下载this.$http({ url: this.$http.adornUrl(`/strUrl/${id}`), method: 'get', responseType: 'blob', timeout: 1000 * 600 }).then(res => { console.log('res', res) if (res.status === 200) { const blob = new Blob([res.data], { type: `application/octet-stream` }) const downloadElement = document.createElement('a') const href = window.URL.createObjectURL(blob) downloadElement.href = href downloadElement.download = `${filename}` downloadElement.click() } else { this.$message.error('下载出错!') } })

5.iframe

<el-button size="mini" @click="handleExport(scope.row)">导出</el-button>//method方法:handleExport(row) { var elemIF = document.createElement('iframe') elemIF.src = 'user/downloadExcel?snapshotTime=' + formatDate(new Date(row.snapshotTime), 'yyyy-MM-dd hh:mm') + '&category=' + row.category elemIF.style.display = 'none' document.body.appendChild(elemIF)}
本文链接地址:https://www.jiuchutong.com/zhishi/289022.html 转载请保留说明!

上一篇:东京的秋叶和金鱼,日本 (© qrsk/Moment/Getty Images)(日本东京秋叶原攻略)

下一篇:YOLOv8改进损失函数WDLoss:独家更新|即插即用|YOLOv8小目标检测高效涨点2%,改进用于小目标检测的归一化高斯 Wasserstein Distance Loss,提升小目标检测(yolov5损失)

  • 动产租赁税率是多少2023
  • 既简易计税又一般计税的进项专票可以抵扣吗
  • 税务行政诉讼是由税务机关进行审理并作出裁决
  • 政府补贴的账务属于哪个科目
  • 定额中税金包含什么
  • 资本公积账务
  • 农产品收购发票可以跨区域开吗
  • 个人所得税中的股息红利应纳税额
  • 一个工程项目多次收款怎样预交增值税
  • 收不回来应收账款会计分录
  • 公司对公银行账户可以注销吗
  • 公司租的房子免租金要交房产税吗?
  • 汽车配件税收分类编码
  • 股东私人垫支公司支付零星材料的会计分录
  • 企业收到固定资产投资时应按什么入账
  • 仲裁委判决还能上诉吗
  • 工厂新增项目需要立项、环境评价
  • 预缴企业所得税是含税数还是不含税
  • 物物交换增值税处理
  • 取得成本tc
  • 小型微利企业怎么认定最新标准
  • 在win7系统中,添加打印机驱动程序
  • linux 隐藏权限
  • php数组函数 菜鸟
  • 应税货物销售额是什么意思
  • 显卡的散热
  • 花卉绿萝的养殖方法
  • 远期外汇交易会有风险吗
  • php strrev
  • laravel模板引擎
  • 收到借款利息会计科目
  • php框架运行机制
  • thinkphp yii
  • codegenerator用法
  • 定额发票累计领取怎么算
  • uniapp 开发安卓app怎么打包迭代版本
  • js读取本地excel
  • 2021高频前端面试题汇总
  • 前端 自动化脚本 怎么写
  • blockdata指令怎么用
  • vuejs echarts
  • 企业所得税本期已预交怎么算
  • 在岗职工平均工资和社平工资的区别
  • 纳税申报和账务不一致
  • 残保金的计费依据
  • 自产自销的农产品可以抵税吗
  • 上一年度企业所得税汇算清缴
  • 计划资产产生的股利
  • 预缴增值税附加税
  • 增值税专用发票查询系统官方网站
  • mysql数据库sid
  • mysql5.7版本安装教程
  • 筹建期间的开办费为什么不属于资产
  • 固定制造费用差异的意义
  • 空调维修保养方案
  • 企业会计人员审计程序
  • 单位每个月支付给个人的保洁费如何申报入账
  • 当月暂估入账跨月怎么算
  • 短期借款怎么做账务处理
  • 人力成本费用率和人工成本利润率
  • 增资扩股步骤
  • 产品成本核算要求有哪几项
  • sql 常用语录
  • 打开电脑windows
  • win7系统默认输入法
  • linux git教程
  • 修改ssh端口号
  • 小黑马科技
  • mac 休眠
  • macos time machine
  • Win7自带的扫雷怎么都打不开
  • 怎么判断电脑windows几
  • window10的ie
  • win10系统怎么更改开机密码
  • javaScript基础语法数据类型
  • js的运算符
  • android反编译smali
  • 广东省地方税务局公告2017年第7号
  • 电子税务局怎么添加银行账户信息
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号