Как получить базу данных изображений в форме обновления для Laravel - PullRequest
0 голосов
/ 19 октября 2019

В форме создания я успешно добавляю изображение с помощью файла, но в форме обновления мне нужно получить старое изображение перед обновлением до нового изображения.

Это моя форма добавления для изображения

<label class="col-md-4" for="author">Image</label>
<input type="file" name="imgSouvenir" value="<?php echo $souvenir->imgSouvenir; ?>" required autofocus >
<img src="{{url('uploads/'.$souvenir->filename)}}" alt="{{$souvenir->filename}}" style="width: 200px">

Это мой контроллер

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

        if ($request->hasFile('imgSouvenir')) {
            $image = $request->file('imgSouvenir');
            $name = time().'.'.$image->getClientOriginalExtension();
            Storage::disk('public')->put($image->getFilename().'.'.$name, File::get($image));
        }

        $souvenir->mime = $image->getClientMimeType();
        $souvenir->original_filename = $image->getClientOriginalName();
        $souvenir->filename = $image->getFilename().'.'.$name;

Это моя форма обновления

<label class="col-md-4" for="author">Image</label>
<input type="file" name="imgSouvenir" value="<?php echo $souvenir->imgSouvenir; ?>" required autofocus >
<img src="{{url('uploads/'.$souvenir->filename)}}" alt="{{$souvenir->filename}}" style="width: 200px">

1 Ответ

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

Нельзя поместить источник изображения на элемент ввода

Вместо этого поместите тег <img> под входом, чтобы показать пользователю изображение, которое он собирается обновить

Примерно так

<form action="/update" method="post">
    @csrf
    @method('PATCH')
    <input type="file" name="imgSouvenir" required autofocus><br>
    <img src="{{ asset('storage/' . $souvenir->filename) }}" alt="{{ $souvenir->original_filename }}">
    <button type="submit">Update</button>
</form>

Надеюсь, это поможет

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