【问题标题】:Problem in multiple image upload in laravel 8laravel 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 我将得到空值

标签: php laravel file-upload


【解决方案1】:

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

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

或 改变

 $name[] = $upload_image_name;   

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

用于存储

GalleryImage::insert($name);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 2018-04-28
    • 2016-08-18
    相关资源
    最近更新 更多