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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM