首页 > 其他分享 >【vue】前端下载文件自定义文件名称

【vue】前端下载文件自定义文件名称

时间:2023-06-13 19:44:06浏览次数:47  
标签:vue 自定义 url xhr link blob 文件名称 下载

【vue】前端下载文件自定义文件名称
https://blog.csdn.net/weixin_48200589/article/details/125067618

下载文件自定义文件名称

文件下载名称不想和后端提供的URL一样怎么办呢?

1.首先给按钮去绑定一个事件

按钮的处理

 <div  class="list-item-download"
    @click="downLoadArticle(item.url , item.title)
 </div>
  • 1
  • 2
  • 3

2.正常我们的下载处理方式

1.直接通过后端返回的url,给location.href就可以下载了,但是文件名字,就是后端返回的 ,不可以自定义

window.location.href = url
  • 1

3.自定义下载的文件名字

 onDownFile(url, filename) {
      this.getBlob(url, (blob) => {
        this.saveAs(blob, filename)
      })
},
getBlob(url, cb) {
      var xhr = new XMLHttpRequest()
      xhr.open('GET', url, true)
      xhr.responseType = 'blob'
      xhr.onload = function() {
        if (xhr.status === 200) {
          cb(xhr.response)
        }
      }
      xhr.send()
},
 saveAs(blob, filename) {
      if (window.navigator.msSaveOrOpenBlob) {
        navigator.msSaveBlob(blob, filename)
      }
      else {
        var link = document.createElement('a')
        var body = document.querySelector('body')
        link.href = window.URL.createObjectURL(blob)
        link.download = filename
        link.style.display = 'none'
        body.appendChild(link)
        link.click()
        body.removeChild(link)
        window.URL.revokeObjectURL(link.href)
      }
},
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

标签:vue,自定义,url,xhr,link,blob,文件名称,下载
From: https://www.cnblogs.com/sunny3158/p/17478574.html

相关文章

  • Vue3
    目录一vue3介绍1Vue3的变化1.1性能的提升1.2源码的升级1.3拥抱TypeScript1.4新的特性2组合式api和配置项api3vue3之vue实例4创建vue3项目4.1使用vue-cli创建4.2使用vite创建5setup6响应式6.1ref函数6.2reactive函数7reactive与ref对比8计算,监听属性8.1监......
  • AntDesign自定义校验表单
    <a-rowclass="row":gutter="32"><a-col:span="16"><a-form-itemlabel="场景模板标签"name="tags"><a-......
  • Vue-watch-deep 深度监听
    首先明确一个概念,Vue是可以监听到多层级数据改变的,且可以在页面上做出对应展示。但是Vue提供的watch方法,默认是不提供深度监听的(deep默认为false,也就是不开启深度监听)(刚挂载的时候是不执行的,只有挂载完成之后的变化才会执行。如果我们想要初次挂载的时候就l执行,则需......
  • vue 的双向绑定原理(vue 的响应式原理)流程
    一、原理 二、流程第一步,“数据劫持”vue2.x用Object.defineProperty()方法来实现数据劫持,为每个属性分配一个订阅者集合的管理数组depvue3.x用ES6的Proxy构造函数来实现数据劫持。第二步,“添加订阅者”在编译的时候在该属性的数组dep中添加订阅者添加方......
  • vue3进阶——组件基础
    组件允许我们将UI划分为独立的、可重用的部分,并且可以对每个部分进行单独的思考。在实际应用中,组件常常被组织成层层嵌套的树状结构,这和我们嵌套HTML元素的方式类似,Vue实现了自己的组件模型,使我们可以在每个组件内封装自定义内容与逻辑。定义组件当使用构建步骤时,我们一般......
  • vue中computed的详细讲解
    1.定义    computed是vue的计算属性,是根据依赖关系进行缓存的计算,只有在它的相关依赖发生改变时才会进行更新2.用法    一般情况下,computed默认使用的是getter属性  3.computed的响应式依赖(缓存)1.computed的每一个计算属性都会被缓存起来,只要计......
  • 如何自定义drf的ValidationError()中的传的内容
     鼠标点击ValidationError(),再点击PyCharm右侧对应两个按钮,找见源码如下 结论:你可以直接传dict或list内容......
  • Vue项目优化
    一、代码层面优化(1)v-if和v-show区分使用场景v-if和v-show的区别区别v-ifv-show手段动态的向DOM树内添加或者删除DOM元素通过设置DOM元素的display样式属性控制显隐编译过程有一个局部编译/卸载的过程是简单的基于css切换编译条件初始条件为假,则什么也不......
  • vue WebUploader 分片上传
    ​ 我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用。这次项目的需求:支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,ie8,ie9,Chrome,Firefox,360安全浏览器,并且刷新浏览器后仍然能够续传,重启浏览器(关闭......
  • 微信公众号开发C#系列-8、自定义菜单及菜单响应事件的处理
    本文目录1、概述2、自定义菜单的规则3、自定义菜单接口可实现按钮类型的种类4、创建菜单4.1、创建菜单的接口4.2、使用Senparc.Weixin.MPSDK创建自定义菜单4.3、查询已创建的菜单4.4、删除已创建的菜单5、菜单响应事件的处理5.1、点击菜单拉取消息时的事件推送5.2、击菜单跳转链......