位置: 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说明文档)

  • 小度摄像头关闭怎么打开(小度摄像头关闭了是不是亮红灯)

    小度摄像头关闭怎么打开(小度摄像头关闭了是不是亮红灯)

  • 华为手机支付宝运动步数不更新(华为手机支付宝支付设置在哪里)

    华为手机支付宝运动步数不更新(华为手机支付宝支付设置在哪里)

  • 微信点了气泡怎么取消(微信气泡怎么恢复原来)

    微信点了气泡怎么取消(微信气泡怎么恢复原来)

  • 打印机a4纸只打印一半(打印机a4纸只打印一半,字体还很大)

    打印机a4纸只打印一半(打印机a4纸只打印一半,字体还很大)

  • 按下侧边按钮使用siri(按下侧边按钮使用siri耗电吗)

    按下侧边按钮使用siri(按下侧边按钮使用siri耗电吗)

  • 抖音审核时间长是什么原因(抖音审核时间长怎么办)

    抖音审核时间长是什么原因(抖音审核时间长怎么办)

  • ios13.5有必要更新吗(ios13有必要升级ios15吗)

    ios13.5有必要更新吗(ios13有必要升级ios15吗)

  • ppt显示不出动画效果(ppt放不出动画)

    ppt显示不出动画效果(ppt放不出动画)

  • 充电头滋滋响解决办法(充电头 滋滋响)

    充电头滋滋响解决办法(充电头 滋滋响)

  • 激活系统是什么意思(激活系统和不激活的区别)

    激活系统是什么意思(激活系统和不激活的区别)

  • wifi显示光信号红灯是什么回事(wifi显示光信号是什么意思)

    wifi显示光信号红灯是什么回事(wifi显示光信号是什么意思)

  • vivox20有没有nfc功能(vivox20a有没有nfc)

    vivox20有没有nfc功能(vivox20a有没有nfc)

  • 带pro是什么意思(pro是啥意思啊)

    带pro是什么意思(pro是啥意思啊)

  • 苹果信息显示感叹号(苹果信息显示感叹号怎么调)

    苹果信息显示感叹号(苹果信息显示感叹号怎么调)

  • 华为mate30带nfc功能吗(华为mate30有nfc)

    华为mate30带nfc功能吗(华为mate30有nfc)

  • 情侣空间有访问记录吗(情侣空间有访问权限吗)

    情侣空间有访问记录吗(情侣空间有访问权限吗)

  • 华为nova5pro怎么矩形截屏(华为nova5pro怎么截屏)

    华为nova5pro怎么矩形截屏(华为nova5pro怎么截屏)

  • 苹果云盘照片怎么查看(苹果云盘照片怎么恢复)

    苹果云盘照片怎么查看(苹果云盘照片怎么恢复)

  • 快手浏览模式怎么设置(快手浏览模式怎么切换)

    快手浏览模式怎么设置(快手浏览模式怎么切换)

  • pr目标比特率多少合适(pr里面的目标比特率太低有没有什么影响)

    pr目标比特率多少合适(pr里面的目标比特率太低有没有什么影响)

  • 一闪怎么导出视频(一闪怎么导出视频到手机)

    一闪怎么导出视频(一闪怎么导出视频到手机)

  • 如何复制链接(如何复制链接提取视频)

    如何复制链接(如何复制链接提取视频)

  • 魅族16怎么隐藏应用(魅族16怎么隐藏应用软件)

    魅族16怎么隐藏应用(魅族16怎么隐藏应用软件)

  • 在Linux服务器上安装配置socks5代理的教程(linux服务器常用操作命令)

    在Linux服务器上安装配置socks5代理的教程(linux服务器常用操作命令)

  • mac itunes下载的文件在哪里?苹果MAC系统itunes下载目录查看方法介绍(苹果笔记本下载的itunes在哪)

    mac itunes下载的文件在哪里?苹果MAC系统itunes下载目录查看方法介绍(苹果笔记本下载的itunes在哪)

  • 外部奖励与内部奖励
  • 建筑垃圾清运费税率是多少
  • 资产负债表不平衡如何查找
  • 实际开票金额和申报金额不符
  • 税务外管证取消了吗
  • 建筑公司设计费税率
  • 国有独资企业交企业所得税规定
  • 退土增税后账务处理
  • 合同解除收取对方的违约金交什么税
  • 可供出售资产减值损失
  • 医院计提坏账准备分录
  • 公司部分公积金计入什么科目
  • 公司进货可以计提折旧吗
  • 从境外取得的佣金
  • 企业合并以外
  • 企业销售额达到多少交企业所得税
  • 去税务局税种认定需要带什么资料
  • 母公司吸收合并全资子公司
  • 现金流量表附表的其他指的是什么
  • 买入返售金融资产什么意思
  • 现金支票丢了
  • 当月作废的发票是否需要报税
  • 收到进项专用发票会计分录
  • 解放双手神器说说
  • 批量获取文件信息
  • 收到融资款如何做账
  • linux attached
  • 安代驾给我发短信
  • 工程结算书和竣工结算书
  • 后端接口返回数据类型规范
  • 母公司将资产划转子公司土地增值税
  • 金税盘减免税款留抵
  • ci框架教程
  • 4s店试驾车出售收益为什么不能做主营业务收入
  • 人工智能科技向善
  • vue组件通信方法
  • php二分查找算法两种方法
  • 销售固定资产是属于销售货物吗?
  • 合并命令如何使用
  • 稽查增值税跨年了销项税额如何转出
  • phpcms上传视频
  • 购扶贫产品怎么记账
  • 农民工的劳务报酬个人所得税怎么那么高
  • 建筑公司劳务发票
  • 给客户的回扣如何做账
  • 税务实名认证是法人还是办税人
  • 预算外财政支出
  • 财务负责人需要承担什么风险
  • 委托加工物资的消费税
  • 加计扣除适用于什么企业
  • 购销合同没注明合同有效期
  • 结转和结算
  • 资产减少的方式有哪些?
  • 上个月的发票未开具
  • 商业汇票怎么算到期日
  • 月末怎么计提摊销和结转
  • 进口增值税当月可以抵扣吗
  • 联营企业子公司是否构成关联方
  • 法院主要业务活动
  • win 10如何安装
  • 苹果发布会最新消息
  • windows7如何设置电脑休眠时间
  • win8激活点不进去
  • windos8怎么样
  • windows xp windows
  • windows7更新补丁后蓝屏
  • cocos2d在运行java eclipse程序时出现 Error: could not open c:program FilesJavajre6libamd64jvm.cfg
  • chromexcel
  • jQuery中的ajax async同步和异步详解
  • android 样式
  • Node.js中的什么模块是用于处理文件和目录的
  • linux中scp命令和scp命令用法大全
  • [置顶]星陨计划
  • jquery插件是干什么的
  • #androidsdk文件夹可以删除吗
  • 退伍军人买车需要摇号吗
  • 应交税费二级科目有哪些
  • 税务扣税账户余额不足
  • 中国税务报优秀文学作品年度评选
  • 交完车船税后地税局都给什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设