laravel 8中多张图片上传的问题
Posted
技术标签:
【中文标题】laravel 8中多张图片上传的问题【英文标题】:Problem in multiple image upload in laravel 8 【发布时间】:2021-09-29 14:43:26 【问题描述】:我在 laravel 8 中上传多张图片时出错。
参数 1 传递给 Illuminate\Database\Grammar::parameterize()
必须是数组类型,给定字符串,调用 C:\xampp\htdocs\laravel_cms\vendor\laravel\framework\src\Illuminate\Database\Query\Grammars\Grammar.php 886行
这是我在控制器中的代码:
$gallery = new GalleryImage;
foreach( $req->file('image_name') as $image)
$upload_image_name = time().'_'.$image->getClientOriginalName();
$image->move('uploads', $upload_image_name);
$name[] = $upload_image_name;
$gallery->image_name = $name;
$gallery->save();
return redirect()->back()->with('status','Image Uploaded Successfully.');
刀片中的代码:
<input name="image_name[]" id="exampleFile" type="file" accept="image/*" multiple>
如果我返回 $req->file('image_name')
文件显示为空
【问题讨论】:
$req->file('image_name')
此处不存在,因为$req->image_name'
是一个数组,数组值包含图像。如果这是单个图像,则将 name="image_name[]"
更改为 name="image_name"
然后您的代码将起作用
@sta 如果我 return $req->image_name
@sta 我将得到空值
【参考方案1】:
看起来问题是由于在数据库字段中存储数组值。如果您尝试以逗号分隔的方式存储图像,那么
$gallery->image_name = implode(', ',$name);
或 改变
$name[] = $upload_image_name;
到
$name[]['image_name'] = $upload_image_name;
用于存储
GalleryImage::insert($name);
【讨论】:
以上是关于laravel 8中多张图片上传的问题的主要内容,如果未能解决你的问题,请参考以下文章