黑马程序员技术交流社区

标题: 【上海校区】Vue 实现文件的下载 [打印本页]

作者: 梦缠绕的时候    时间: 2019-8-19 11:24
标题: 【上海校区】Vue 实现文件的下载
实现文件的上传需要三步,那么实现文件的下载呢?
也是三步哟
  第一步:获取文件的 fileId (或者别的什么的,总之应该是代表这个文件的东西),各家后台需要的都不一样
  第二步:调用接口
    this.$http({
      url:this.HOST + api.download,
      method:'post',
      params:{
        fileId:fileId //此处上传第一步获取到的 fileid
      },
      responseType:'arraybuffer' //此处注意请求头
      }).then(function(res){
        var this = that
        var fileName = that.files.name //此处获取文件名称
        that.download(res.data,fileName) //此处跳转到第三步
      })

  第三步:处理返回值,并下载
          download (data,fileName) {
      if (!data) {
        return
      }
      let url = window.URL.createObjectURL(new Blob([data])) //创建下载链接
      let link = document.createElement('a') //创建a标签
      link.style.display = 'none'  //将a标签隐藏
      link.href = url  //给a标签添加下载链接
      link.setAttribute('download', fileName) // 此处注意,要给a标签添加一个download属性,属性值就是文件名称 否则下载出来的文件是没有属性的,空白白
      document.body.appendChild(link)  
      link.click()  //执行a标签
      }





作者: 梦缠绕的时候    时间: 2019-8-19 11:24
有任何问题欢迎在评论区留言
作者: 梦缠绕的时候    时间: 2019-8-19 11:24
或者添加学姐微信
DKA-2018




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2