vue 下载后台返回的文件流,上传文件流

1、下载:
项目是在axios封装下掉接口,写法如下

js部分

import { axios } from '@/utils/request'

//下载接口
export function excelDownload (parameter) {
  return axios({
    responseType: 'arraybuffer',
    url: '/result/excelDownload',
    method: 'post',
    data: parameter
  })
}

//导入接口
export function excelImport (parameter) {
  return axios({
    url: '/result/excelImport',
    method: 'post',
    data: parameter
  })
}

downloadFun () {//下载
      excelDownload().then(res =>{
         // 设置文件类型,这里以excel为例,并创建一个blob
        let blob = new Blob([res], {type: "application/vnd.ms-excel;charset=utf-8"});
        // 创建一个临时URL
        let url = window.URL.createObjectURL(blob);
        // 添加
        var a = document.createElement("a");
        document.body.appendChild(a);
        a.href = url;
        // 设置下载名称
        a.download = 'example.xls';
        a.click();
        window.URL.revokeObjectURL(url);
      })
    },
    //导入
    importFun (event) {
      //创建formdata对象
      let that = this;
      let inputDOM = that.$refs.inputer;
      let file = inputDOM.files;
      let formData = new FormData();
      console.log(file)
      formData.append('file', file[0]);
      excelImport(formData).then(res =>{
        if(res.code === 0){
          this.$message({
            type: 'success',
            message: res.msg
          })
        }else{
          this.$message({
            type: 'info',
            message: res.msg
          })
        }
      })
    },

html部分

<div class="addButton" @click="downloadFun">
   <a-icon type="import" style="color: #ffffff"/>
      <span class="addText" style="color: #ffffff;margin-left:6px">导入模板下载</span>
  </div>
  <div class="editorButton">
    <input type="file" class="btnfile" @change="importFun" ref="inputer"/>
    <a-icon type="import" style="color: #ffffff"/>
    <span class="addText" style="color: #ffffff;margin-left:6px">导入</span>
  </div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值