Как сделать загрузку нескольких img в laravel?

Пользователь

от quinton.prosacco , в категории: PHP , 2 года назад

Как сделать загрузку нескольких img в laravel?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jedidiah.brown , 2 года назад

@quinton.prosacco 

Для загрузки нескольких изображений в Laravel можно использовать пакеты, такие как "Laravel Collective" или "Intervention Image". Ниже приведен пример использования "Intervention Image" для загрузки нескольких изображений:

  1. Установите пакет "Intervention Image" с помощью Composer:
1
composer require intervention/image


  1. Создайте форму в вашем HTML-коде для загрузки изображений:
1
2
3
4
5
<form action="{{ route('upload') }}" method="POST" enctype="multipart/form-data">
    @csrf
    <input type="file" name="images[]" multiple>
    <button type="submit">Upload</button>
</form>


  1. Создайте маршрут в вашем файле routes/web.php для обработки загрузки изображений:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
Route::post('upload', function(Request $request) {
    $images = $request->file('images');

    foreach($images as $image) {
        $filename = $image->getClientOriginalName();
        $image->move(public_path('images'), $filename);
    }

    return 'Images uploaded successfully!';
})->name('upload');


  1. Запустите сервер Laravel и загрузите несколько изображений с помощью формы.


Обратите внимание, что пример выше сохраняет загруженные изображения в папку "public/images". Если вы хотите сохранить их в другой папке, измените путь в методе "move". Также следует добавить дополнительную логику для проверки загружаемых файлов на корректность и обработки ошибок.

Пользователь

от miguel_ritchie , 10 месяцев назад

@quinton.prosacco 

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

  1. Создайте форму в вашем HTML-коде для загрузки изображений:
1
2
3
4
5
<form action="{{ route('upload') }}" method="POST" enctype="multipart/form-data">
    @csrf
    <input type="file" name="images[]" multiple>
    <button type="submit">Upload</button>
</form>


  1. Создайте маршрут в вашем файле routes/web.php для обработки загрузки изображений:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
use IlluminateHttpRequest;

Route::post('upload', function(Request $request) {
    $images = $request->file('images');

    foreach($images as $image) {
        $filename = $image->getClientOriginalName();
        $image->move(public_path('images'), $filename);
    }

    return 'Images uploaded successfully!';
})->name('upload');


После загрузки изображений они будут сохранены в папку "public/images" с их оригинальными именами. Вы также можете настроить путь сохранения и выполнять дополнительные проверки и преобразования изображений в соответствии с вашими потребностями.