无法使用Vue前端和laravel服务器上载文件
我正在尝试上传一个文件(文件可以是任何东西,例如图像、pdf或文档,绝对可以是任何东西)。为此,我在下面的Vue组件中制作了一个测试表单无法使用Vue前端和laravel服务器上载文件,laravel,vue.js,Laravel,Vue.js,我正在尝试上传一个文件(文件可以是任何东西,例如图像、pdf或文档,绝对可以是任何东西)。为此,我在下面的Vue组件中制作了一个测试表单 <form class="mt-5" method="post" enctype="multipart/form-data" id="uploadForm"> <div class="form-group">
<form class="mt-5" method="post" enctype="multipart/form-data" id="uploadForm">
<div class="form-group">
<input type="file" id="test" name="test" class="form-control">
</div>
<button @click.prevent="uploadFile" type="button" class="btn btn-sm btn-primary">Upload</button>
</form>
因此,当我console.log(something)
时,它会向我显示上载文件的信息,但当我使用axios和dd($request->all())
将数据发送到服务器时,它会向我显示something=>[]
一个空数组,这意味着我无法获取该文件,因此无法进一步处理以将其保存到我的文件夹中(上载)
我在这里做错了什么?这是因为在使用axios发出请求时,您没有将标题
内容类型设置为多部分/表单数据(默认情况下使用的是应用程序/json),并且enctype属性无效,因为您没有使用默认表单提交操作。因此,尝试在post方法中传递第三个参数,指定正确的内容类型
标题
const uploadAvatar=({id,file})=>{
const formData=new formData();
formData.append('avatar',文件);
返回axios.post(`users/${id}/avatar`,formData{
标题:{“内容类型”:“多部分/表单数据”},
});
};
uploadFile() {
let something = $('#test').prop('files')[0];
console.log(something);
let form_data = new FormData();
form_data.append('file', something);
console.log(form_data);
axios.post('/upload/file', { form_data })
.then(() => {
console.log("done");
})
},