首页 > 解决方案 > 如何将多个文件上传到一个 CELL 中?

问题描述

我尝试将多个文件上传到我的数据库中,但我只得到一个文件,我使用 laravel 5.5,所有文件都显示在我的文件目录路径中,但只将一个文件存储到我的数据库中。这是我的代码我的看法

<label for="image">{{ __(' image') }}</label>
 <input type="file" name="image[]" class="form-control" value="{{ $employee['image'] }}" multiple>

我的路线

Route::post('/people/employees/test/{id}', 'EmplController@test');

我的控制器

if($request->hasfile('image')){
        foreach ($request->image as $image) {
            $path = $image->getClientOriginalName();
            $filename = time() . '-' . $path;
$image->storeAs('employees', $employee->id . '/' . $filename);
            $image->move(public_path('employees'),$filename);
i inserted image here->$employee->image = $filename;
  $employee->save();

  }
}


标签: phplaravel

解决方案


制作一个数组,并在插入表之前将其内爆,例如:

$files = []; // an empty array
foreach($a as $b) {
   $files[] = $b->name; // insert name to array
}

$files = implode(",", $files); // insert $files into your table

所以你需要改变你的代码:

if($request->hasfile('image')){
        $files = []; // make an array
        foreach ($request->image as $image) {
            $path = $image->getClientOriginalName();
            $filename = time() . '-' . $path;
            $files[] = $filename; // insert to array
$image->storeAs('employees', $employee->id . '/' . $filename);
            $image->move(public_path('employees'), $filename);
         }
         $files = implode(",", $files); // insert $files into your table
}

推荐阅读