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-&gt;file('image_name') 文件显示为空

【问题讨论】:

$req-&gt;file('image_name') 此处不存在,因为$req-&gt;image_name' 是一个数组,数组值包含图像。如果这是单个图像,则将 name="image_name[]" 更改为 name="image_name" 然后您的代码将起作用 @sta 如果我 return $req-&gt;image_name@sta 我将得到空值 【参考方案1】:

看起来问题是由于在数据库字段中存储数组值。如果您尝试以逗号分隔的方式存储图像,那么

$gallery->image_name = implode(', ',$name);        

或 改变

 $name[] = $upload_image_name;   

 $name[]['image_name'] = $upload_image_name;

用于存储

GalleryImage::insert($name);

【讨论】:

以上是关于laravel 8中多张图片上传的问题的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.8 多张图片上传

Laravel Vue 多张图片上传失败,每个图片都有一个 NULL 值

Laravel 5.2 中的多张图片上传

带删除和预览的多张图片上传 Laravel

Laravel 4 上传 1 张图片并保存为多张 (3)

Laravel 上传多张带有错误 idback 的图像:“idback 必须是文件类型:jpg、jpeg、png。”