我正在尝试在 vue.js 和 laravel 中一次上传多个文件,我使用的代码是:
<块引用>Vue.js 代码:
t = timestamps.values
((df['START'].values[:, None] <= t) & (df['END'].values[:, None] >= t)).any(1)
<块引用>
Laravel 代码:
array([False, True, False])
<块引用>
我收到此错误:
<input type="file" v-validate="'required'" multiple @change="uploadDegree" name="uploadDegree" placeholder="Upload Degree"/>
uploadDegree(e)
{
for (let file of e.target.files) {
try {
let reader = new FileReader();
reader.onloadend = file => {
this.user.degree_attachment= reader.result;
};
reader.readAsDataURL(file);
} catch {}
}
}
我试图获取图像的地方,
答案 0 :(得分:0)
有两个问题,评论中提到的一个
另一个我在你的 vue 代码中注意到,你每次都用文件内容覆盖变量 this.user.degree_attachment
,所以首先它不是多次上传,其次它的类型不会是一个数组,所以 Laravel 控制器不会知道如何处理因此 Invalid argument supplied for foreach()
只是因为它不是迭代对象类型。
好吧,我没有在 laravel 部分尝试过,我在这个 sandbox 中测试了 vue,并且控制台将每个文件的内容作为数组项记录在数组中,但这通常是由您的 laravel 验证触发的。
uploadDegree(e) {
let a = [];
for (let file of e.target.files) {
try {
let reader = new FileReader();
reader.onloadend = (file) => {
a.push(reader.result);
};
reader.readAsDataURL(file);
this.degree_attachment = a;
} catch {}
}
console.log(this.degree_attachment);
},