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

  • 进货开了发票也写了购销合同要交印花税吗?
  • 税务会计的工作内容和心得
  • 跨月的增值税专用发票未抵扣怎么作废
  • 简易征收增值税怎么做账
  • 个人所得税生产经营所得税率
  • 建筑行业进项税率一览表
  • 或有负债在报表附注哪里
  • 企业资产核算不包括哪些
  • 招标代理资质办理好办吗
  • 商业企业购入商品会计分录
  • 制造业印花税计税,按照去税金额计算
  • 地下车库的成本核算
  • 广告费怎么入账
  • 电子设备折旧率一般多少
  • 印花税少提了怎么办
  • 将汽车奖励给员工财务如何处理?
  • 印花税金额不足多少可以不收
  • 海关完税凭证抵扣税率
  • 展览费怎么开票
  • 诊所购药有差价怎么办
  • 1697509110
  • 延期收款利息如何算
  • 小区保安有收物业费的权利和义务吗?
  • macos big sur最新版本
  • 应收账款期初余额是借还是贷
  • 招待费报销制度规定
  • macos big sur怎么升级
  • win7关机提示
  • 冲减管理费用的情况
  • 银行承兑汇票质押率90%
  • 生产运维是干什么的
  • 购货款先到支付后付款
  • 购货方收到红字发票怎么报税
  • el-tree方法
  • php课堂笔记
  • 弥补以前年度亏损最多几年
  • php数据库删除数据
  • 人工智能的几个发展阶段
  • html文档基本结构包括哪几部分
  • js中的定时器
  • 破解版微擎框架如何升级
  • 使用Go http重试请求
  • 关税对企业有什么影响
  • 固定资产科目的备抵科目
  • 企业研发费用加计扣除比例
  • 预提成本应该如何结转
  • ps橡皮擦工具的作用是什么
  • 完税证明可以直接做账吗
  • 投资性房地产转固定资产账务处理
  • 企业所得税计算题及答案解析
  • 车保险返点如何计算
  • 财务费用在贷方,怎么结转到本年利润?
  • 库存股的处理方式
  • 专票的发票金额是价税总额吗
  • 企业向员工收取费用
  • 开红字发票需要具备什么条件
  • mysql开源社区
  • mysql中的groupby
  • sql server 复制数据库具体操作图解
  • win7组织在哪
  • windowxp宽带连接
  • 由于这台计算机没有远程客户端访问许可证
  • ubuntu系统如何
  • linux环境什么意思
  • windows8.1 preview
  • win7怎么修改开机启动
  • cocos2dx 4.0
  • cocos2dx游戏开发
  • Node.js中的事件循环是什么意思
  • vue_api_server
  • js简单代码
  • python编程术语
  • document对象的常用方法
  • java 视频教程
  • jquery mobile app
  • 用python语言编写
  • 治理体系治理能力十九届四中
  • 简述会计估计及其特点
  • 印刷行业费用标准
  • 省银保监局长是什么级别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设