Загрузить несколько изображений laravel в одну строку таблицы - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь загрузить несколько изображений в свою базу данных, а затем показать их на другой странице, но когда я загружаю их, я вижу только одно изображение, а не остальные. Это мой html

<div class="form-group">
<label for="inputGroupFile01">Upload foto's</label>
<input type="file" name="image" class="form-control-file" id="inputGroupFile01" aria-describedby="inputGroupFileAddon01" multiple>
</div>

, и это мой контроллер для его сохранения

if ($request->hasFile('image')) {
            $filenameWithExt = $request->file('image')->getClientOriginalExtension();
            $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
            $extension = $request->file('image')->getClientOriginalExtension();
            $fileNameToStore = $filename . '_' . time() . '.' . $extension;
            $request->file('image')->move('storage/images', $fileNameToStore);

        } else {
            $fileNameToStore = 'noimage.jpg';
        }

И это мой код, чтобы показать это

<a download="retourmelding_{{$retour->firmaname}}" href="{{ asset('storage/images/'.$retour->images) }}" title="Foto">
<img alt="Foto" src="{{ asset('storage/images/'.$retour->images) }}"></a>

Так загрузка работает отлично, я также сделал мой ввод многократным, и когда я выбираю изображения, в мою базу данных загружается только первое изображение, и это единственное изображение, которое я вижу. Где проблема?

1 Ответ

0 голосов
/ 09 января 2020

1) Добавьте enctype="multipart/form-data" к тегу формы

<form method="post" action="YOUR URL GOES HERE" enctype="multipart/form-data">
  {{csrf_field()}}
//...
</form>

2) Имя вашего файла должно быть image[]

<input type="file" name="image[]" class="form-control-file" id="inputGroupFile01" aria-describedby="inputGroupFileAddon01" multiple>

3) Проверка бэкенда

$this->validate($request, [
    'image' => 'required',
    'image.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'
]);

4) Вставка нескольких изображений в базу данных

//...
if($request->hasfile('image'))
         {

            foreach($request->file('image') as $image)
            {
                $name=$image->getClientOriginalName();
                $image->move(public_path().'/images/', $name);  
                $data[] = $name;  
            }
         }

         $myModel = new App\MyModel();
         $myModel->filename = json_encode($data);


        $myModel->save();
//...
...