vue 實現文件上傳

文件上傳的傳統方式是通過 form 表單提交,這裏將換一種方式來實現這個功能。

使用 FormData,雖然它和 form 長得有點像,但是是兩個不一樣的東西。

FormData 對象可以組裝一組用 XMLHttpRequest 發送請求的鍵 / 值對. 它可以靈活方便的發送表單數據, 因此可以獨立於表單使用. 如果把表單的編碼類型設置爲 multipart/form-data, 則通過 FormData 傳輸的數據格式和表單通過 submit() 方法傳輸的數據格式相同.

<input type="file" class="file"> // 通過file來選擇需要上傳的文件
var formData = new FormData() // 聲明一個FormData對象
var formData = new window.FormData() // vue 中使用 window.FormData(),否則會報 'FormData isn't definded'
formData.append('userfile', document.querySelector('input[type=file]').files[0]) // 'userfile' 這個名字要和後臺獲取文件的名字一樣;
                                                                                 //'userfile'是formData這個對象的鍵名
var options = {  // 設置axios的參數
        url: '請求地址',
        data: formData,
        method: 'post',
        headers: { 
        'Content-Type': 'multipart/form-data'
    }
}
this.axios(options).then((res) => {}) // 發送請求

這就已經成功實現了文件的上傳了

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/fpFKpa36xJLV7G9lFbL_OQ