我面临的问题与此处描述的相同:https://github.com/api-platform/api-platform/issues/2135-但似乎没有人照顾。
我使用Vuetify作为我的前端,我试图创建文件上传,但只发送空数组。
下面是我的Vuetify部分代码:
<v-file-input
v-model="log_file_upload"
color="accent"
counter
label="File input"
multiple
placeholder="Select your files"
outlined
:show-size="1000"
@change="fileUpload"
>
<template v-slot:selection="{ index, text }">
<v-chip
v-if="index < 5"
color="accent"
dark
label
small
>
{{ text }}
</v-chip>
</template>
下面是我的JS函数:
fileUpload: function() {
var formData = new FormData();
formData.append("file", this.log_file_upload[0]);
axios
.post(`/upload/`,formData, {
headers: {"Content-Type": "multipart/form-data"}})
.then((response) => {
console.log(response.data);
})
},
当我在“formData.append”之后执行
console.log(this.log_file_upload[0].text());
我得到了整个文件的内容在控制台,但请求发送到后端是空的。只有文件名在那里。你们有什么建议吗?
1条答案
按热度按时间jecbmhm31#
使用Vuetify的输入来上传文件的例子并不多,但是,在阅读了一些资料之后,我想出了这个解决方案--
从输入中删除
v-model
有两个原因-1.它不会显示文件对象的数据。
1.每次上传时,都需要向后端发送一个请求,并且我们已经使用了
change
事件,该事件会将文件对象传递给其对应的方法,因此不需要将文件对象保存在其他任何地方。这里有个例子