【发布时间】:2021-08-06 16:11:12
【问题描述】:
我正在尝试在 vue.js 和 laravel 中一次上传多个文件,我使用的代码是:
Vue.js 代码:
<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 {}
}
}
Laravel 代码:
$files = $request->input('degree_attachment');
foreach($files as $file) {
$degreename = time() . '.' . explode('/', explode(':', substr($file, 0, strpos($file, ';')))[1])[1];
$pathDegreeExist = public_path("img/degree_img/");
if(!File::exists($pathDegreeExist)) File::makeDirectory($pathDegreeExist, 777);
$img = \Image::make($file);
$img->save(public_path('img/degree_img/').$degreename);
$newUser->degree_attachment = $degreename;
}
我收到此错误:
Invalid argument supplied for foreach()
我要在哪里获取图像,
【问题讨论】:
-
$files = $request->file('degree_attachment');不是input()是file -
@KamleshPaul:尝试过但仍然出现同样的错误
-
您以 base64 格式发送?它应该是
this.user.degree_attachment.push(reader.result)然后它将是数组,你可以循环 -
@KamleshPaul:我试过你的代码,但它仍然给我
Invalid argument supplied for foreach()