其他分享
首页 > 其他分享> > vue 文件上传到后台接口以及从后台接口下载文件

vue 文件上传到后台接口以及从后台接口下载文件

作者:互联网

文件上传操作稍微复杂点,有如下两种

// vue前端页面部分(使用老式的input按钮上传,贼丑)
<template>
  <div>
    <input type="file" @change="inputFileChange"> 
    <el-button type="primary" size="mini" @click="clicks">上传</el-button>
  </div>
</template>
 
<script>
import { UploadFiles } from '@/api/plan'
export default {
  data () {
    return {
      files:''
    }
  },
  mounted: function () {

  },
  methods: {
    inputFileChange(e) {
      this.files = e.target.files[0]
    },

    clicks() {
      if(this.files){
        let fd = new FormData()
        fd.append('file',this.files)
        UploadFiles(fd).then(res => {
          
        })
      }
    }
  }
}
</script>
 
<style scoped>

</style>
// 使用el-upload组件上传
<template>
  <div>
    <el-upload
        drag
        multiple
        ref="upload"
        action="string"
        :before-upload="onBeforeUploadImage"
        :http-request="UploadImage"
        :file-list="fileList">
        <i class="el-icon-upload"></i>
        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        <div class="el-upload__tip" slot="tip">只能上传rvt</div>
    </el-upload>
  </div>
</template>
 
<script>
import {UploadFiles} from '@/api/plan'
export default {
  data () {
    return {

    }
  },
  mounted: function () {

  },
  methods: {
   // 文件提交之前的操作 可以进行type类型的判断
    onBeforeUploadImage (file) {
      console.log(file)
    },
    // 文件提交
    UploadImage (param) {
      let fd = new FormData()
      console.log('param.file',param.file)
      fd.append('file', param.file) // 要提交给后台的文件
      UploadFiles(fd).then(response => {  // UploadFiles 是封装的接口
        
      })
    }

  }
}
</script>
 
<style scoped>

</style>


// 连后台接口部分
// 上传 UploadFiles
export function UploadFiles(formData) {
  return request({
    url: '/auditufileinfo/uploadPlanBatchTemplate',
    method: 'post',
    data: formData
  })
}

文件从后台接口下载到本地就很简单了,一个a标签里面有后台接口url就可以,剩下的就交给浏览器来做:

<a href="你的后台小伙伴的接口完整地址">下载文件</a>

 

标签:files,文件,接口,fd,file,后台,上传,UploadFiles
来源: https://blog.csdn.net/qq_25973779/article/details/99653644