位置: 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损失)

  • 小天才怎样添加视频通话的人(小天才怎样添加微聊成员)

  • 360浏览器如何将主页设为百度(360浏览器如何将网页发送到桌面快捷方式)

  • 抖音转发的视频怎么找不到(抖音转发的视频怎么去掉别人的抖音号)

  • 电脑两年没开机开不了(电脑两年没开机,开机显示器黑的)

  • 华为nova7第一次怎么充电(华为nova7新机第一次怎么充电)

  • QQ发不出来消息(qq发不出来消息怎么回事)

  • 电脑切屏是什么意思(电脑切屏是什么样子的图片)

  • oppor9s的寿命(oppor9s的使用寿命是多少年)

  • 宽带连接629是什么意思(宽带连接629是什么意思怎样解决)

  • 小米9miui12什么时候更新(小米9miui12哪个版本好用)

  • 循环播放怎么设置(循环播放怎么设置实况)

  • b站改名要多少硬币(b站改名有限制吗)

  • 软件与ipad不兼容怎么办(如果说ipad与某个软件不兼容怎么办)

  • qq同城群什么意思(qq同城群和普通群有什么区别)

  • nova4e怎么录屏(华为nova4e手机录屏怎么操作)

  • 华为荣耀7x能插内存卡吗(华为荣耀7x能插电信卡吗)

  • 苹果微信文件过期怎么恢复(苹果微信文件过期打不开怎么恢复)

  • 怎么阻止95开头的电话(如何拦截95开头号码)

  • 阿里云邮箱如何注册(阿里云邮箱如何续费)

  • 微信悬浮窗口怎么设置(微信悬浮窗口怎么调节大小)

  • 为什么苹果下载不了探探(为什么苹果下载不了app软件)

  • 爱奇艺如何上传视频(爱奇艺如何上传高清视频)

  • Win11怎么下载软件?Win11系统下载软件总被阻止解决办法(win11怎么下载手机应用)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络