vue实现文件下载


download.js这个插件会造成只下载文件地址,只能下载图片和视频地址,对于pdf和word之类的内容只有文件的下载地址

这个是我根据别人的方法封装成一个工具类,在vue中直接引入就可以使用了

在工具类中引入写入下载方法

工具类截图

import axios from 'axios'

export default function downloadfile (url) {
  let params = {}
  axios.post('http://192.168.1.34:8000/media/' + url, params, { responseType: 'blob' })
    .then(res => {
      let content = res.data
      let blob = new Blob([content])
      let fileName = url
      if ('download' in document.createElement('a')) {
        // 非IE下载
        let elink = document.createElement('a')
        elink.download = fileName
        elink.style.display = 'none'
        elink.href = URL.createObjectURL(blob)
        document.body.appendChild(elink)
        elink.click()
        URL.revokeObjectURL(elink.href) // 释放URL 对象
        document.body.removeChild(elink)
      } else {
        // IE10+下载
        navigator.msSaveBlob(blob, fileName)
      }
    })
    .catch(err => {
      console.log(err)
    })
}

然后在vue文件中直接引入即可


评论
 上一篇
elementui样式修改 elementui样式修改
本文的部分内容引用于https://www.cnblogs.com/my466879168/p/12091439.html,本文做案例翻译和加上个人理解 前言因为在vue的文件里面,为了保护每个vue文件的样式不冲突,在样式里面是有个s
2020-06-24
下一篇 
uniapp性能优化建议 uniapp性能优化建议
本文引用于http://www.javanx.cn/20191022/uni-app/ 前言Uni-App,从了解到开发,相信大家都会觉得Uni-App性能不好,其实也这是非原生的弊病。React Native、Flutter等,非原生
2020-06-23
  目录