axios文件上传下载
文件上传
1 <input type="file" @change="upload($event)" />
1 // 引入axios 2 import axios from 'axios' 3 4 // 配置axios 5 const instance = axios.create({ 6 baseURL: 'http://127.0.0.1:3000', //服务器地址 7 headers: { 8 'Content-Type': 'multipart/form-data' // 设置为文件类型 9 } 10 }) 11 12 const typeArr = ['txt','png','rar'] // 可上传的文件类型 13 let formData = new FormData() 14 15 upload: function(event){ 16 let file = event.target.files[0] // 获取文件 17 let type = file.name.split('.')[1] // 获取文件类型 18 if(typeArr.indexOf(type) < 0){ 19 console.log('上传的文件类型有误') 20 return 21 } 22 23 let size = file.size // 文件大小 24 if(size / (1024 * 1024) > 5){ 25 console.log('文件不能大于5M') 26 return 27 } 28 29 formData.append('file', file, file.name) 30 instance.post('upload/file',formData).then(res => { 31 if(res.data.code === 0) { 32 console.log('文件上传成功') 33 formData.value = null // 清空 input 框 34 } 35 }) 36 }
文件下载
1 // 引入axios 2 import axios from 'axios' 3 4 download:function(){ 5 axios({ 6 mtehod: 'post', 7 url: 'http://127.0.0.1:3000/file', 8 headers: { 9 Accept: '*/*' // 接收任意类型的文件 10 }, 11 responseType: 'blob' , // 接收数据类型为 blob类型 12 data: null 13 }).then(res => { 14 let blob = res.data // 接收到的数据 15 16 let eleLink = document.createElement('a') // 创建 a标签 17 let url = window.URL.createObjectURL(blob) // 创建url对象 指向blob 18 eleLink.href = url // 设置a标签的href属性 19 eleLink.download = `文件名字.txt` // 下载的文件名 后缀名与后台约定 20 document.body.appendChild(eleLink) // 将a标签添加到文档中 21 eleLink.click() //执行点击事件 开始下载 22 window.URL.revokeObjectURL(url) // 释放指定的url 23 }) 24 }