如何在axios服务中发布文件(pdf,doc)以及JSON数据

时间:2017-12-28 13:47:52

标签: json file laravel-5 vuejs2 axios

我想在axios服务中发送PDF / Docs文件以及其他JSON数据。 我已提到(Ajax post a file from a form with Axios)但它只发送没有任何JSON数据的文件。

 field_value: {}, // here it shows empty object,but it should show File Object
 field_type: "file_upload", 
 is_file_upload: true

}

当我在发送请求之前控制对象时它比在FormData()中显示一个文件对象但在post请求中看到它时显示空括号。

1 个答案:

答案 0 :(得分:0)

您可以这样做:

//HTML    
<input type="file" @change="onFileChanged" :multiple="multiple" :accept="accept" />

然后你的javascript代码来处理文件输入:

onFileChanged(event) {
  var files = event.target.files || event.dataTransfer.files;
  if (!files.length) {
    return;
  }

  var formData = new FormData();

  // Add the File object to the formdata
  if (this.multiple) {
    formData.append("files", files);
  } else {
    formData.append("file", files[0]);
  }

  // Add your data...
  formData.append("data", myData);
}

uploadDocument(formData) {
  return Axios.post('/api/documents', formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  });
}

使用从文件输入类型获得的formData发送到后端。

然后你可以这样做:

uploadDocument(formData).then((response) => {
  console.log('data sent');
})  

希望它有所帮助。