在vue中实现多个文件下载&&element ui 实现弹窗

这篇具有很好参考价值的文章主要介绍了在vue中实现多个文件下载&&element ui 实现弹窗。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 在vue中实现多个文件下载

后端返回多个URL,前端直接点击下载

1.1 window.open

let url = “xxx”;
window.open(url)
在新窗口打开该下载链接,只能打开一个,多个文件下载不支持

1.2 iframe方法

使用iframe方法(此方法浏览器会跳出弹窗,是否允许下载多个文件,用户体验不好)

export const downloadFile = (url) => {
  const iframe = document.createElement("iframe");
  iframe.style.display = "none"; // 防止影响页面
  iframe.style.height = 0; // 防止影响页面
  iframe.src = url; 
  document.body.appendChild(iframe); // 这一行必须,iframe挂在到dom树上才会发请求
  // 5分钟之后删除(onload方法对于下载链接不起作用,就先抠脚一下吧)
  setTimeout(()=>{
    iframe.remove();
  }, 5 * 60 * 1000);
}
//以下写在script标签的方法里
exportList() {
      let tempUrl = "后端的接口-下载用的URL";
      let tempUrl2 = "后端的接口-下载用的URL";
      // window.open(tempUrl)
      let files = [tempUrl,tempUrl2];
      for(let i=0; i<files.length; i++) {
        downloadFile(files[i])
      }
    },

1.3 使用a标签

使用a标签(不用点允许多个文件下载)
● 对于同源文件,通过a标签可以实现批量下载能力
● 跨域文件,同样只成功下载了一两个文件,其余文件请求出现canceled
(以上没实验,其他同学总结的结论)
不过最后我使用了以下a标签批量下载的方法成功实现

//导出按钮点击
    exportList() {
      let tempUrl = "后端的接口-下载用的URL" ;
      let tempUrl2 = "后端的接口-下载用的URL";
      // window.open(tempUrl)
      let files = [tempUrl,tempUrl2];
      for(let i=0; i<files.length; i++) {
        this.downloadFile1(files[i])
      }
    },
    downloadFile1(url) {
      const a = document.createElement('a');
      a.href = url; // 文件链接
      a.download = url; // 文件名,跨域资源download无效
      a.click();
      a.remove();
    },

2 element ui 实现弹窗

思路:
点击a跳出弹窗,此时动态绑定一个变量控制是否显示弹窗,并把这个变量传给子组件(弹窗),弹窗右上角x绑定一个点击事件,控制传过来的布尔变量变化。

(记录日常学习生活,如有不对,欢迎大家指正,帮我修正一下哈哈)文章来源地址https://www.toymoban.com/news/detail-405927.html

到了这里,关于在vue中实现多个文件下载&&element ui 实现弹窗的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element-ui文件上传下载组件+后台对应接口

    element-ui文件上传下载组件: 具备上传、下载和删除功能。 不自动上传,附件选择后只将文件加入待上传列表,点击确认上传按钮后上传到后台服务器,已上传的文件通过表格的形式展示在上方表格中。 删除和上传权限可配置。 效果如下: 代码如下: 后端:

    2024年02月12日
    浏览(30)
  • js 实现多个文件循环下载 批量下载

    最近业务涉及勾选之后多个word文件下载 开始用的循环方式 怎么试都是下载最后一个文件 后来找到原因是 当循环执行下载的时候,几个下载命令连续执行的时候,浏览器会取消上一个下载,直接下载最后一个文件 。所以要加一个定时器,让几个连续的下载请求之间有时间间

    2024年02月11日
    浏览(38)
  • vue结合element ui 实现多个文件上传、并删除不符合条件的

    多个文件上传的核心就是将文件append进FormData的实例中,向后台请求时将实例对象传送过去。  多个文件上传,传送的数据: html部分: js部分(this.$request是我自定义的请求方式,大家可以根据自身需要来调整): 1. 我们想要的效果是手动一次性上传多个文件,但是文件选取

    2024年03月20日
    浏览(49)
  • 使用element-ui的el-upload进行excel文件上传与下载

    需求:前端上传文件后,后端接受文件进行处理后直接返回处理后的文件,前端直接再将文件下载下来。 通常我们都是直接使用el-upload的action属性来直接完成文件上传的操作,如果要进行后续文件的直接下载,可以在on-success中用代码进行操作,若存在401权限问题也可以直接

    2024年02月11日
    浏览(32)
  • 详解JS实现单个或多个文件批量下载的方法

    目录 0.JS简介 前言 单个文件Download 方案一:location.href or window.open 方案二:通过a标签的download属性 方案三:API请求 多个文件批量Download 方案一:按单个文件download方式,循环依次下载 方案二:前端打包成zip download 方案三:后端压缩成zip,然后以文件流url形式,前端调用dow

    2024年02月01日
    浏览(43)
  • vue element el-upload附件上传、在线预览、下载当前预览文件

    上传 在线预览(iframe): payload: response: 全部代码: 初版–01

    2024年02月14日
    浏览(42)
  • 【Java 实现文件下载】vue前端+java后端实现文件下载详解(附源码)

    【 写在前面 】前端时间总结了一下有关java文件上传的功能,也给不少读者带来一些帮助,因此今天继续完善文件下载这套体系,希望能给屏幕前的您带来实质性的帮助,其实文件下载最怕的就是中文乱码的现象,当然这个我单独写了一篇文章解释,这里不做详谈。 涉及知识

    2024年02月09日
    浏览(33)
  • Spring Boot 中实现文件上传、下载、删除功能

    🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论⭐收藏 🔎 SpringBoot 领域知识 🔎 链接 专栏 SpringBoot 专业知识学习一 SpringBoot专栏 Sprin

    2024年01月19日
    浏览(41)
  • Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载

    业务需求:从数据库查询多个list集合信息封装excel,每个excel都有2个sheet页,填充不同的信息,最后将所有excel打包成zip文件,以流的形式返回给客户端,供客户端另存为窗口下载。 只发出一次请求 每个excel表中到数据记录不能超过2条 excel文件或者zip包不会上传服务器,而是

    2024年02月06日
    浏览(40)
  • windows.open 在vue前端实现文件下载(自定义下载文件名)

    1. 将要下载的文件放在前端项目的 assets 文件夹内  我要下载的文件为  src/assrts/xxx/xxx模板.csv  2. 在页面创建下载按钮    3. 导入该文件 4. 在build文件夹下的webpack.base.conf.js 文件中,添加csv(或者其他)解析类型 5. 编写下载方法 参考自:vue 实现本地excel文件下载功能_璐哈

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包