位置: IT常识 - 正文

【前端文件下载】直接下载和在浏览器显示下载进度的下载方法(前端实现文件下载功能)

编辑:rootadmin
【前端文件下载】直接下载和在浏览器显示下载进度的下载方法 文件下载方法

推荐整理分享【前端文件下载】直接下载和在浏览器显示下载进度的下载方法(前端实现文件下载功能),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:前端实现文件下载功能,前端 文件下载,前端下载文件到指定路径,前端下载后端文件,前端页面下载,前端下载文件到指定路径,前端 文件下载,前端下载后端文件,内容如对您有帮助,希望把文章链接给更多的朋友!

【前端文件下载】直接下载和在浏览器显示下载进度的下载方法(前端实现文件下载功能)

之前做下载文件遇到了点问题, 就趁此机会总结一下前端下载文件的方法:

如果是浏览器支持的类型, 那么打开的话是一个preview操作, 那么针对浏览器不支持预览的类型, 如果打开的话就会进行下载操作

a. 地址栏直接输入URL b. window.location.href = URL c. window.open(URL)

使用a标签来下载, 利用a标签的download属性, 并且可以自定义下载文件的名称 也可以直接通过js来创建一个a标签, 然后放入body里, 触发其点击事件来下载, 下载过后remove即可

<a href="/xx/xxx.jpg" download="fileName">通过XMLHttpRequest下载 缺点: 此方法是下载完毕之后才在浏览器左下角弹出对应的文件信息, 没有下载的进度, 如果文件比较大的话, 就会感觉点击了只是在loading但是并不能确定文件是否在下载, 也无法知道文件的下载进度, 体验感不好// 接收url fileName, 以及文件下载成功之后的回调downLoadFile(url, fileName, callback) { const url2 = url; // url.replace(/\\/g, "/"); const xhr = new XMLHttpRequest(); xhr.open("GET", url2, true); xhr.responseType = "blob"; //xhr.setRequestHeader('Authorization', 'Basic a2VybWl0Omtlcm1pdA=='); // 为了避免大文件影响用户体验,建议加loading xhr.onload = () => { if (xhr.status === 200) { // 获取文件blob数据并保存 // const suffix = this.getFileSuffix.call(this, url, fileName); // this.saveAs.call(this, xhr.response, fileName) this.saveAs.call(this, xhr.response, fileName) }// 下载成功之后执行回调 callback && callback(); }; xhr.send();},通过OSS实现有进度条的下载方法 优点: 点击下载之后直接在浏览器左下角弹出对应的文件信息以及下载的进度, 体验感比较好// 下载操作downloadAction(row, type = '') { // 获取上传参数 getDownloadParam().then(data => { // 拿到参数之后去创建 OSS 客户端对象 this.createOssClient(data).then(client => { const filename = row.name; const response = { 'content-disposition': `attachment; filename=${encodeURIComponent(filename)}` }; const url = client.signatureUrl(row.file_path, { response }); window.location.href = url; }); }).catch(err => { })},// 创建 OSS 客户端对象createOssClient(data) { return new Promise((resolve) => { const client = new OSS({ region: data.region, accessKeyId: data.access_key_id, accessKeySecret: data.access_key_secret, stsToken: data.security_token, bucket: data.bucket, }); resolve(client) })},

欢迎大家一起讨论学习😊~

本文链接地址:https://www.jiuchutong.com/zhishi/287188.html 转载请保留说明!

上一篇:【HTML】有趣的代码合集(附源码)(有趣的css代码)

下一篇:Pytorch文档解读|torch.nn.MultiheadAttention的使用和参数解析(pytorch说明文档)

  • 钉钉不能回放直播的原因有哪些(钉钉直播回放不了)

    钉钉不能回放直播的原因有哪些(钉钉直播回放不了)

  • 荣耀30s是支持屏幕指纹的吗(荣耀30s是直屏还是曲屏)

    荣耀30s是支持屏幕指纹的吗(荣耀30s是直屏还是曲屏)

  • 苹果官网退款什么时候到账(苹果官网退款什么时候到账信用卡)

    苹果官网退款什么时候到账(苹果官网退款什么时候到账信用卡)

  • 手机充电摸起来麻麻的(手机充电摸起来麻麻的对身体有)

    手机充电摸起来麻麻的(手机充电摸起来麻麻的对身体有)

  • 现在还有必要买电脑吗(现在还有必要买电视吗)

    现在还有必要买电脑吗(现在还有必要买电视吗)

  • 微信号可以改嘛(微信号可以改么)

    微信号可以改嘛(微信号可以改么)

  • 淘宝朋友代付的退款后钱在哪(淘宝朋友代付的退款怎么退到自己支付宝)

    淘宝朋友代付的退款后钱在哪(淘宝朋友代付的退款怎么退到自己支付宝)

  • 扫描可以替代传真吗(扫描仪能传播病毒吗)

    扫描可以替代传真吗(扫描仪能传播病毒吗)

  • oppo充电没反应又开不了机(oppo充电没反应又开不了机说是主板)

    oppo充电没反应又开不了机(oppo充电没反应又开不了机说是主板)

  • 抖音小店手机上可以上产品吗(抖音小店手机上如何打印面单)

    抖音小店手机上可以上产品吗(抖音小店手机上如何打印面单)

  • sim卡故障能修复吗(sim卡出故障是不是卡坏了)

    sim卡故障能修复吗(sim卡出故障是不是卡坏了)

  • oppoa91与oppok5对比(oppok5与oppoa91哪款手机更好)

    oppoa91与oppok5对比(oppok5与oppoa91哪款手机更好)

  • 酷我音乐会员下载的歌是永久的吗(酷我音乐会员下载的歌曲下到U盘不会过期)

    酷我音乐会员下载的歌是永久的吗(酷我音乐会员下载的歌曲下到U盘不会过期)

  • iPhonexr长按电源键没法关机(iphonexr长按电源键没反应)

    iPhonexr长按电源键没法关机(iphonexr长按电源键没反应)

  • 华为荣耀p30参数配置(荣耀p30价格5g)

    华为荣耀p30参数配置(荣耀p30价格5g)

  • 停机是欠费吗(手机号码状态查询)

    停机是欠费吗(手机号码状态查询)

  • xr国产屏和原装区别(苹果xr手机国产屏和原装屏区别大吗)

    xr国产屏和原装区别(苹果xr手机国产屏和原装屏区别大吗)

  • 高斯投影是等角投影吗(高斯投影是等角竖轴椭圆柱投影)

    高斯投影是等角投影吗(高斯投影是等角竖轴椭圆柱投影)

  • 京东怎么确认收货步骤(京东怎么确认收获)

    京东怎么确认收货步骤(京东怎么确认收获)

  • vivo设置个人来电铃声(vivo手机怎么设置一个人的来电铃声)

    vivo设置个人来电铃声(vivo手机怎么设置一个人的来电铃声)

  • 腾讯追剧日历在哪里(腾讯视频日历提醒有什么用)

    腾讯追剧日历在哪里(腾讯视频日历提醒有什么用)

  • 查看电脑开机时间(查看电脑开机时间记录win10)

    查看电脑开机时间(查看电脑开机时间记录win10)

  • 去年少交增值税的会计处理
  • 银行承兑汇票和支票的区别
  • 计提本月短期借款利息是权责发生制吗
  • 个税系统经营所得如何添加人员信息
  • 失业保险稳岗返还是政府补助吗
  • 汇算清缴纳税调整项目
  • 公司帮其他单位开发票违法吗
  • 收款凭证填写模板下载
  • 企业所得税讲解
  • 分公司代理人
  • 计入在建的工资会计科目
  • 员工工资超过多少钱要交税
  • 营改增的税收政策
  • 增值税应纳所得额是什么意思
  • 企业所得税发票在哪里打印
  • 金税三期能查几年前的发票
  • 管理费用属于什么现金流量项目
  • 企业所得税一般是几个点
  • 税务局退的教育费附加怎么做账
  • 事业单位开发成本占比
  • 采购合同的运作过程为
  • 未分配利润可以转实收吗
  • 进项发票认证抵扣时间有限制吗
  • 银行贷款的坏账是什么意思
  • 过桥资金法律规定
  • 如何在Excel中添加筛选项
  • deepin启动延时
  • 职工食堂的费用可以抵税吗
  • 资产负债表其他流动资产计算公式
  • 刷信用卡没手续费
  • 企业库存太多后果
  • pddocument.load
  • 建筑企业预缴企业所得税怎么计算
  • php+jQuery+Ajax实现点赞效果的方法(附源码下载)
  • idea怎么运行前端vue项目
  • php设置title
  • node_sass
  • 收购企业如何看报表
  • python htmltestrunner报告
  • 小规模如何申报增值税
  • 注册公司行业分类有多少种
  • 室内装修专用什么意思
  • 怎么修改申报数据
  • 使用sql server查询不到会返回什么
  • 税务安全证书应用客户端不成功是什么意思
  • 劳务费计入工资薪金总额吗
  • 防伪开票系统打不开
  • 补交上年度企业所得税税额需要本年度纳税调增吗
  • 个人所得税如何扣税
  • 资产负债表不平衡怎么办
  • 多计提的个人所得税退给员工怎么处理
  • 营改增后增值税增加了什么征收范围
  • 资产处置收入需要缴纳增值税吗
  • 代理进口货物如何确定增值税纳税人
  • 代发工资业务流程
  • 签合同前的协议叫什么
  • 劳务费差额征税的账务处理
  • 企业应当在
  • 企业债与公司债的还款有区别
  • 安装win7旗舰版鼠标无法使用
  • 巧妙设置Vista任务栏和开始菜单的属性
  • 解决ubuntu和win10关机重启界面不动
  • mac系统怎么给文件夹设置密码
  • broadcom网卡配置
  • ubuntu更换版本
  • 用u盘安装ubuntu
  • w10运行命令在哪
  • 在linux系统中,用来存在系统所需
  • win7打印机删除后怎么恢复
  • android游戏开发框架
  • nodejs实战
  • 10个JavaScript中易犯小错误
  • 关于使用RequestWindowFeature为啥一定要在setContentView之前调用
  • javascript中的document
  • jquery删除数据
  • python怎么自定义函数
  • 北京市国家税务局发票查询平台
  • 福建省国税局电话号码
  • 余额宝出现问题怎么办?
  • 2023河南新农合截止日期新规
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设