【问题标题】:How to upload multiple image in laravellaravel如何上传多张图片
【发布时间】:2017-07-27 08:44:19
【问题描述】:

我正在尝试在数据库表的单行中上传多个图像并在显示页面中访问它们。我已经尝试过本教程: laraveldaily.com/upload-multiple-files-laravel-5-4/ 但是制作了两个不同的表并建立了关系。

我希望这发生在一个表中。

【问题讨论】:

  • 显示你的代码你到目前为止尝试了什么
  • 我正在关注教程:laraveldaily.com/upload-multiple-files-laravel-5-4
  • 好的。你有没有尝试过?

标签: php mysql laravel


【解决方案1】:

以下是最适合我的方法:

首先在您的表单中执行此操作:

<form class="form-horizontal" enctype="multipart/form-data" method="post" action="/details">

这用于多项选择:

<input required type="file" class="form-control" name="images[]" placeholder="address" multiple>

现在在您的控制器中执行此操作:

public function store(request $request) {

    $input=$request->all();
    $images=array();
    if($files=$request->file('images')){
        foreach($files as $file){
            $name=$file->getClientOriginalName();
            $file->move('image',$name);
            $images[]=$name;
        }
    }
    /*Insert your data*/

    Detail::insert( [
        'images'=>  implode("|",$images),
        'description' =>$input['description'],
        //you can put other insertion here
    ]);


    return redirect('redirecting page');
}

希望这可行

【讨论】:

  • 嗨,我想知道如果我使用验证,我应该写什么? $data = $request-&gt;validate(['name'=&gt;'required', 'files' =&gt; 'file']); 有点用,但之后我无法获取文件数据
【解决方案2】:
<form role="form" method="post" action="{{URL::to('addimage')}}" enctype="multipart/form-data">
    <div class="form-group" style="padding-bottom: 15px">                            
         <label class="col-lg-3">Upload</label>
         <input class="btn btn-primary"  type="file" name="files[]" > <br/>
    </div>
</form>




$images = $request->file('files');
if ($request->hasFile('files')) :
        foreach ($images as $item):
            $var = date_create();
            $time = date_format($var, 'YmdHis');
            $imageName = $time . '-' . $item->getClientOriginalName();
            $item->move(base_path() . '/uploads/file/', $imageName);
            $arr[] = $imageName;
        endforeach;
        $image = implode(",", $arr);
else:
        $image = '';
endif;



        DB::table('fooo')->insert(
        array(
            'image' => $image
           )
       );

        Session::flash('message', 'Image upload successfully successfully');
        return redirect('/addimage');

【讨论】:

    【解决方案3】:

    这也可以通过

    来实现
                foreach ($request->file('files') as $index => $item) {
                    $path = $request->files[$index]->store('images');
                }
    

    【讨论】:

      【解决方案4】:

      这个对我有用。

      表格:

      <form class="form-horizontal" enctype="multipart/form-data" method="post" action="/details">
      

      这用于多选图像:

      <input required type="file" class="form-control" name="image[]" placeholder="address" multiple>
      

      现在在我们的模型中执行此操作:

      protected fillable = ['producd','image', ];
      

      现在在我们的控制器中执行此操作:

      public function store(Request $request)
      {
        $image = array();
        if($file = $request->file('image')){
            foreach($file as $file){
                $image_name = md5(rand(1000,10000));
                $ext = strtolower($file->getClientOriginalExtension());
                $image_full_name = $image_name.'.'.$ext;
                $uploade_path = 'uploads/images/';
                $image_url = $uploade_path.$image_full_name;
                $file->move($uploade_path,$image_full_name);
                $image[] = $image_url;
            }
            Image::insert([
                'image' => implode('|', $image),
                'producd' => $request->producd,
            ]);
            return redirect('/image.index'));       
        }
      }
      

      【讨论】:

      • 如何在 laravel 的索引页面中获取和显示多张图片
      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-05
      • 2018-04-28
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 2019-12-25
      • 2020-03-20
      相关资源
      最近更新 更多