【发布时间】:2020-02-05 12:14:56
【问题描述】:
我尝试使用 Vuejs 和 Laravel 创建一个简单的文件上传。但是我的“文件”变量在发布时似乎为空。
<b-form-group label-for="file">
<b-form-file
v-model="file"
id="file"
:state="Boolean(file)">
</b-form-file>
</b-form-group>
data() {
return {
file: null,
},
}
还有一个 post 方法。 (适用于表格的其余部分)
addContract(newContract) {
post("/contracts/" + `${this.customer_id}`, newContract)
.then((response) => {
//
}
.catch(error){
//
}
}
控制器
//code
$fileName = time(). '.' .$request->$file->getClientOriginalExtention();
$request->file->move(public_path('upload'), $fileName);
dd($fileName);
//code
更新 我设置了axios标头,但是现在我得到了错误422,当它是应用程序时我没有,但它仍然不起作用。
headers: {
'Content-Type': 'multipart/form-data'
}
【问题讨论】:
-
您是否在表单中添加了
enctype="multipart/form-data"? -
不,我必须添加这个?
-
是的,您必须添加它,否则您将无法使用 post 请求发送文件。见here
-
我添加了 from 标签,我也尝试过这个例子。仍然,我得到了空值。
-
我不知道您的
post()方法是做什么的,但您可能必须将multipart/form-data设置为您的post()方法中的标题。
标签: laravel forms vuejs2 bootstrap-vue