首页 > 其他分享 >(Vue)前端获取头文件中的文件内容进行点击下载

(Vue)前端获取头文件中的文件内容进行点击下载

时间:2022-08-29 16:25:11浏览次数:39  
标签:文件 Vue 头文件 fileName 点击 link blob

一、需求

  通过点击按钮下载后端接口头文件中的二进制流文件

二、实现

  1、查看后台接口返回及头文件

 

 

 

  这里可以通过content-disposition获取文件名,因为他需要解码我不想太麻烦就直接写死了,想直接通过解码的方式获取文件名可通过以下方式。由于后台返回的文件是二进制流的形式所以我们看到的都是乱码,主要原因是服务器端和前端的编码格式不同,所以在发送请求的时候需要发送文件流接收格式给后端{responseType:'blob'}非常重要!!!,这样才能保证解析出来的文件内容不是乱码,blob文件类型参数可以参考头文件的content-type内容(直接照着用就好了),这里有个小细节,就是使用$axios.post()方式请求接口时一定要注意格式,否则可能导致解析失败。

 

 

let fileName = res.headers['content-disposition']
let regFileNames = decodeURI(fileName.match(/=(.*)$/)[1])

2.代码实现

 1 self.$axios
 2         .post('/business/containerOrder/exportInWarehouse/'+row.containerOrderId,{},{responseType:'blob'})
 3         .then(res=>{
 4           const fileName = "进仓单.docx"
 5           const blob = new Blob([res.data],{
 6             type: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=UTF-8',
 7           });
 8           //创建一个a标签并设置href属性,之后模拟人为点击下载文件
 9           let link = document.createElement('a');
10           link.href = window.URL.createObjectURL(blob);
11           link.download = fileName;//设置下载文件名
12           link.click();//模拟点击
13           //释放资源并删除创建的a标签
14           window.URL.revokeObjectURL(link.href);
15         })

 

 

标签:文件,Vue,头文件,fileName,点击,link,blob
From: https://www.cnblogs.com/xmt08042/p/16635281.html

相关文章

  • vue3+vuex 的 state 的 使用
     <template><divclass="app"><h3>在模板中直接使用(vue2-3都可用)</h3>姓名:{{$store.state.nameVuex}}等级:{{$store.state.levelVuex}}......
  • vue 获取汉字拼音
    import{pinyin}from'pinyin-pro';//获取带音调拼音pinyin('汉语拼音');//'hànyǔpīnyīn'//获取不带声调的拼音pinyin('汉语拼音',{toneType:'non......
  • vue2+vuex的state的使用
    app.vue<template><divclass="app"><h3>在模板中直接使用</h3>姓名:{{$store.state.nameVuex}}等级:{{$store.state.levelVuex}}头......
  • vue报错Error in render: “TypeError: Cannot read property ‘length‘ of undefine
    最近弄安卓开发,uniapp,开发,微信小程序无任何报错,但安卓端,报错,而且,一个错误会再报很多不相干的错误;并不会显示代码具体报错的行数。排查费劲!!![Vuewarn]:Errorinrender:......
  • Vue引入CSS样式的方法
    Vue引入CSS样式的方法https://blog.csdn.net/pick_ears/article/details/122214627......
  • 使用 vue 开发 APICloud 应用的教程
    文档目录一、APICloud创建程序1、APICloud后台创建应用2、APICloud拉取代码,APICloud开发工具地址APICloud开发工具PC端,先下载APICloud开发工具,打开开发工具......
  • 解决vue3+ts require报错
      自己安装命令安装之后,在ts.config.json里面配置之后(最后一行){"compilerOptions":{"target":"es5","module":"esnext","strict":true,"......
  • vue+elementUI+sortablejs --- el-table列表拖拽
    前言:最近很多需求都与拖拽有关,一般拖拽用的都是 vuedraggable 但是要是在el-table列表里面拖拽当用vuedraggable去包裹table列表包外层只能拖动整个列表包里面数......
  • Mac系统下Datagrip打不开、点击没反应?
    有没有可能是因为你从网上下载了一些破解软件导致的?背景Mac系统下JB公司家的IDEA、Datagrip、PyCharm或Goland打不开点击没反应……分析大概率是之前安装过汉化插......
  • vue大文件分片上传插件
    ​文件夹数据库处理逻辑 public class DbFolder{    JSONObjectroot;       public DbFolder()    {        this.root= new J......