我一直在尝试使用带有laravel后端的vue js中的axios上传带有表单数据的文件。那里的解决方案很少,但我无法让它们发挥作用。
所以这就是我想要做的。 这是我在vue js中的数据,我用v-model.My表单提交方法和它的代码绑定它们
let formData = new FormData();
var file = document.querySelector('#report');
formData.append("file", file.files[0]);
formData.append('someName','someValue');
axios({
method: 'put',
url: self.sl+'/seller/upflv',
data: formData,
})
在laravel后端我使用
登录 \Log::info($request->all());
我在日志文件中得到一个空数组。
以下是我在Chrome网络中可以看到的内容
------WebKitFormBoundary0Q7B39baNw6AJXDA
Content-Disposition: form-data; name="file"; filename="d.PNG"
Content-Type: image/png
------WebKitFormBoundary0Q7B39baNw6AJXDA
someValue
------WebKitFormBoundary0Q7B39baNw6AJXDA--
任何帮助或解释都会非常有帮助。 谢谢。
答案 0 :(得分:3)
不久前遇到了类似的问题。
检查此https://github.com/laravel/framework/issues/13457#issuecomment-239451567
尝试像这样发送:
let formData = new FormData();
var file = document.querySelector('#report');
formData.append("file", file.files[0]);
formData.append('someName','someValue');
formData.append('_method', 'PUT'); // ADD THIS LINE
axios({
method: 'post', //CHANGE TO POST
url: self.sl+'/seller/upflv',
data: formData,
})