文件上傳
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 }