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

  • 买车库需要交税吗
  • 2023年印花税如何计算
  • 生产成本怎么做
  • 资本公积转实收资本要交税吗
  • 法人怎么从公账上转账
  • 企业递延所得税费用的计算公式
  • 流动负债占总负债比率较高说明什么
  • 出售股票公允价值变动在借方
  • 汽车的高速公路是指
  • 领导报销发票挂哪个科目
  • 企业进行股票买入的条件
  • 月初缴纳的保险是当月的吗
  • 增值税专用发票和普通发票的区别
  • 国企不交社保怎么办
  • 税法关于劳务费用的规定
  • 公户转账给个人没有票
  • 什么称为非正数
  • 增值税又有调整政策吗
  • 购进旅客运输服务为什么不能抵扣进项税额
  • 本月收到外汇怎么做账
  • 小微企业免税销售额一栏怎么填
  • 银行抵押贷款结清后需要解押吗
  • 小规模纳税人的增值税计入成本吗
  • 实收资本入账价值怎么算
  • 生活补贴和节日补贴区别
  • 享受小型微利企业税收优惠的条件
  • 企业房产税怎么申报缴纳流程
  • 公司分期付款购车账务处理
  • 其他所得是什么意思
  • 软件存在的意义
  • 华为鸿蒙harmonyos官网4.0
  • launcher.exe是什么,每次开机都是否需要进行更改
  • win10点击网络属性没反应
  • php调用图片
  • 会计月末做账
  • 第4章 数据处理思维导图
  • 成本核算流程会议记录
  • 进料加工与来料加工均为一进一出的两笔交易
  • 增值税的计税依据包括契税吗
  • php输入框input代码
  • 计提职工养老保险金
  • 稿酬所得的个税怎么计算
  • 口腔门诊提供免费服务有哪些?
  • 加工劳务费会计分录
  • php生成随机数不重复
  • 简述php图像操作的基本步骤
  • 扶贫小额信贷分析报告
  • 收款收据可以盖业务章吗
  • 税率变了
  • 有外币业务需不需要交税
  • 个人独资企业可以变更法人吗?
  • 为什么应付账款不被视为债务融资
  • 什么叫生活补助
  • 汇算清缴银行手续费放哪里
  • 如何确认产品销售收入
  • 跨年暂估成本如何冲销
  • 政府补助怎么记账
  • 质量管理体系认证证书
  • 如何加强存货管理,提高存货周转率
  • 招待费用的进项发票可以抵扣吗
  • 客人在酒店
  • 抄报返写
  • Win10 Build 17035自制64位中国版十合一ISO镜像下载地址
  • 优化加速锁定任务是什么意思
  • win8 开始
  • win10周年更新版是什么意思
  • 开源镜像是什么意思
  • linux怎么禁用命令
  • macbookpro4399小游戏
  • mac怎么使用islide
  • linux 截屏
  • cocos2dx屏幕适配解决方案
  • js基于什么语言
  • bat修改ip地址
  • ajax链式调用
  • 特岗教师服务期满证书
  • 提问:请问海淀区各税务所管辖范围都是哪里?
  • 税务八项规定日期怎么写
  • 如何打印更正申请
  • 北京税务局网上办税服务厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设