位置: IT常识 - 正文

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

编辑:rootadmin
前端几种下载文件的方式(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损失)

  • 信息化投入包括手机吗
  • 汇算清缴涉及哪些调整
  • 报完增值税就要清卡吗
  • 新建厂房装修费是否计入固定资产
  • 应付账款及预付账款分录
  • 异地预缴的企业所得税可以抵扣吗
  • 研发费用可以列支成本吗
  • abc类企业是什么意思
  • 专用发票压线了可以拒收吗
  • 营改增后建筑行业甲供材
  • 合法的扣税凭证图片
  • 年度利润总额的12%
  • 应收账款坏账计提政策
  • 合并报表编织原则
  • 预收账款多了好还是少了好
  • 固定资产报废残料收入的账务处理
  • 电费专票抵扣需要发票吗
  • 免抵退转免税账务处理
  • 建筑企业在境外施工税收一共包括几个部分
  • 高新技术企业所得税税率
  • 外商投资企业税务优惠
  • 未抵扣的进项税在资产负债表里怎么填
  • 分公司税率怎样确定
  • 外汇扣税是多少钱啊
  • 分公司开票信息
  • 在同一预缴地有多个项目的建筑业纳税人总销售额以什么为标准确定?
  • 企业所得税法的规定可在税前扣除的
  • 我们无法创建新的分区,也找不到现有的分区 贴吧
  • 电脑开机屏幕黑屏无信号
  • 职工福利费算职工薪酬吗
  • 出差人员餐费,进项可以抵扣吗
  • 销售商品发生的现金折扣
  • php远程命令执行
  • 父子之间房屋赠与费用
  • 股份支付的确认和计量原则
  • PHP:imagedestroy()的用法_GD库图像处理函数
  • 基于opencv的图像处理
  • 资产为什么等于成本
  • 批发企业商品盘点发生短缺时
  • 企业残保金怎样申报
  • php session实例
  • 小规模纳税人工程税率是多少
  • 基于matlab的随机森林回归和交叉验证
  • 2023跨年烟花链接
  • 开个人劳务发票怎么缴个人所得税
  • 劳务公司可以
  • 物权变动的原因是什么
  • 公司食堂吃饭没钱怎么办
  • 印花税报少了交税了怎么办
  • 借调是原单位发工资吗
  • access speed
  • 小规模纳税人企业所得税征收标准
  • 定额发票是否可以盖公章
  • 公司物资借用手续
  • 合资注册公司应该注意什么
  • 应付票据在资产负债表怎么填列
  • mysql sql语句性能调优
  • win8.1重置电脑
  • ubuntu安装哪个版本
  • pd虚拟机安装安卓系统
  • linux 命令详解
  • mac字体发虚解决办法
  • win7升级win10系统版本软件还有吗
  • Win7系统安装教程
  • wind7安装
  • 系统闹钟设置
  • 相机渲染图片
  • js函数重名
  • jquery弹出窗口的方法
  • python回归结果输出
  • a标签的href和onclick
  • 一行代码5个bug
  • 安卓绘图软件推荐
  • javascript图片
  • python爬虫程序下载网页上内容
  • jquery解决跨域问题
  • 销售不动产增值税税率
  • 无锡市高新区税务局张贤平
  • 税务延期申报最长多久
  • 税务局经费来源
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设