vue实现点击下载文件,vue如何实现文件下载

  vue实现点击下载文件,vue如何实现文件下载

  本文主要介绍Vue中点击url下载文件案例的详细说明。这篇文章需要注意的是,如果一个文件的url是跨域的,那么下载可能会失败,因为fetch请求连接后,因为跨域而无法获取资源,所以无法进行后续操作,此时就是失败。详情请跟随边肖。

  

目录

  代码实现使用注释封装自定义指令将url变为粗体,并在创建标记后下载blob。

  

代码实现

  在src下的directive文件夹下创建一个新目录downLoadUrl

  下载Url/index.js文件

  /*

  *后端返回文件的url,前端创建一个A标签下载。

  *

  * 1.解决了如果文件是浏览器支持的图片或格式类型,点击下载会直接打开文件,

  * 2.下载文件时,浏览器会出现闪烁问题。

  *

  *在页面上使用

  * 1.从 @/directive/down-load-URL 导入下载

  * 2.注册指令指令:{downLoad}

  * 3.使用,以说明的形式在按钮上下载使用。例如:El-button v-downLoad= URL downLoad/El-button

  */

  从导入下载。/下载

  const install=function(Vue) {

  Vue.directive(downLoadUrl ,下载)

  }

  下载。安装=安装

  导出默认下载

  DownLoadUrl/downLoad.js文件

  导出默认值{

  bind(el,binding) {

  if (binding.value.url) {

  el.addEventListener(click ,()={

  const a=document . createelement( a )

  //let URL=baseURLbinding.value//If URL不完整,需要拼接baseurl。

  Const url=binding.value.url //直接使用完整的url

  //这里是把url转换成blob地址,

  获取(URL)。然后(res=res.blob())。然后(blob={//将链接地址字符内容转换成blob地址。

  a . href=URL . createobjecturl(blob)

  console.log(a.href)

  A.download=binding . value . name //下载文件的名称

  //a . download=URL . split(/)[URL . split(/)。length-1]///下载文件的名称

  document.body.appendChild(a)

  a .单击()

  //资源下载完成后,清除占用的缓存资源。

  窗户。URL . revokeobjecturl(a . href);

  document . body . remove child(a);

  })

  })

  }

  }

  }

  在main.js中注册自定义指令

  

使用

  返回一个对象{url: ,名称: }

  

注意

  1.如果文件的url是跨域的,下载可能会失败,因为fetch请求连接后,因为跨域而无法获取资源,所以无法进行后续操作,这就是失败。

  2.也可以设置浏览器。获取pdf、图片等资源。不要直接打开,直接下载,然后简单的创建一个A标签就可以下载了。

  关于vue中点击url下载文件的这篇文章到此为止——一个案例。有关在Vue中点击url下载文件的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: