【发布时间】:2018-09-19 23:04:47
【问题描述】:
我正在尝试使用Laravel 作为后端和Vue.js2 作为前端来上传图像。
这是我的代码
addUser() {
let formData = new FormData();
formData.append('fullname', this.newUser.fullname);
formData.append('email', this.newUser.email);
formData.append('phone', this.newUser.phone);
formData.append('photo', this.newUser.photo);
formData.append('roles', this.newUser.roles);
formData.append('permissions', this.newUser.permissions);
axios.post('users', formData)
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error);
});
},
onFileChange(e) {
let files = e.target.files || e.dataTransfer.files;
if (!files.length)
return;
this.createImage(files[0]);
},
createImage(file) {
let reader = new FileReader();
let vm = this;
reader.onload = (e) => {
vm.newUser.photo = e.target.result;
};
reader.readAsDataURL(file);
},
和Laravel 后端代码:
if($request->hasFile('photo')) {
return response()->json([
'success' => true,
'message' => 'Файл есть.',
'data' => $request->all()
]);
}
return response()->json([
'success' => true
]);
最后是html代码:
<input type="file" class="filestyle" data-text="Загрузите фото" @change="onFileChange">
不幸的是,它似乎不起作用。未找到文件。解决方法是什么?
【问题讨论】:
-
诊断问题的步骤:您是否确认文件已附加到请求中?您是否确认在您的后端命中了正确的端点?
标签: javascript php laravel vue.js vuejs2