Система загрузки нескольких изображений - PullRequest
1 голос
/ 13 октября 2019

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

public function store(Request $request)
{
    //validate
    $this->validate($request, [
        'subject'=>'required|min:10',
        'tags' => 'required',
        'body' => 'required|min:20',
        'filename' => 'sometimes',
        'filename.*' => 'file|image|mimes:jpeg,png,jpg,gif,svg|max:5000'
    ]);

    //store
    $news=auth()->user()->news()->create($request->all());
    $news->tags()->attach($request->tags);
    $this->storeImage($news);

    //redirect
    return redirect()->route('news.index');
}
private function storeImage($news)
{
    if (request()->has('image')) {
        foreach (request()->file('filename') as $file) {
            $news->update([
                'filename' => request()->filename->store('uploads', 'public'),
            ]);
        }
    }
}

Загрузить HTML:

<div class="form-group">
  <label for="image"><b>Select Image To Add</b></label>
  <input type="file" name="filename[]">
</div>

Как я могусделать файл сохранить в базе данных, поскольку он вообще не сохраняется в базе данных? Может ли кто-нибудь помочь мне решить эту проблему, пожалуйста?

1 Ответ

0 голосов
/ 14 октября 2019

Не рекомендуется сохранять изображения в базе данных. Сохраните файлы в общей папке на сервере и сохраните пути к файлам только в базе данных.

обновите форму следующим образом

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

добавьте несколько кinput

<div class="form-group">
    <label for="image"><b>Select Image To Add</b></label>
    <input type="file" name="filename[]" multiple >
</div>

обновить ваш storeImageFunction Вот так

public function storeImage(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;
  }
 }
}

Теперь у вас есть все пути к изображениям в массиве images .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...