2016-04-28 66 views
3

我想通過使用Vue JS通過Ajax上傳文件 - 但是服務器一直在迴應說文件需要成爲一個圖像(它的工作原理,當它不使用AJAX)。設置我有如下:Ajax文件上傳Vue JS

<input type="file" name="avatar" v-model="profileFormData.avatar"> 

而且我的數據是:

profileFormData: { 
      "name": '', 
      "email": '', 
      "avatar": '', 
     }, 

是否有一些具體的事情,我需要的文件上傳呢?

回答

2

我似乎已經找到了解決辦法。首先,我必須從表單元素(以及該表單中的每個元素)中刪除v模型。然後,不要發佈v模型,請使用FormData獲取要發送的數據。

下面是一個例子:

//Pass the form into a new FormData object 
var formData = new FormData(this.el); 

//Pass through the object instead of data passed via a v-model 
    this.vm 
     .$http[this.getRequestType()](this.el.action, formData) 
     .then(this.onComplete.bind(this)) 
     .catch(this.onError.bind(this));