Для добавления картинки на сайт в Laravel, вам потребуется выполнить несколько шагов. Здесь я опишу основные этапы настройки загрузки и отображения изображений в Laravel.
1. Создайте миграцию для добавления столбца в базу данных:
Откройте командную строку или терминал, перейдите в корневую папку вашего проекта Laravel и выполните следующую команду:
php artisan make:migration add_image_to_table --table=table_name
Замените table_name
на имя таблицы, к которой вы хотите добавить столбец для хранения изображений.
2. Откройте только что созданную миграцию (она будет находиться в папке database/migrations
) и добавьте следующий код в метод up()
:
Schema::table('table_name', function (Blueprint $table) { $table->string('image')->nullable(); });
Этот код добавляет строковый столбец image
в указанную таблицу.
3. Выполните миграцию для создания столбца в базе данных:
Из командной строки или терминала в корневой папке вашего проекта Laravel выполните команду:
php artisan migrate
Это создаст новый столбец image
в таблице, указанной в миграции.
4. Создайте контроллер для обработки загрузки изображений:
Откройте командную строку или терминал, перейдите в корневую папку вашего проекта Laravel и выполните следующую команду:
php artisan make:controller ImageController
Эта команда создаст новый контроллер ImageController
.
5. Откройте только что созданный контроллер (он будет находиться в папке app/Http/Controllers
) и добавьте следующие методы:
use IlluminateHttpRequest; use IlluminateSupportFacadesStorage; public function upload(Request $request) { $path = $request->file('image')->store('public/images'); $url = Storage::url($path); return $url; } public function show($url) { return Storage::response($url); }
Метод upload(Request $request)
отвечает за обработку загрузки изображений, сохранение их на сервере и возврат URL-адреса, по которому изображение будет доступно.
Метод show($url)
возвращает изображение по указанному URL-адресу.
6. Откройте файл маршрутов (routes/web.php
) и добавьте следующие маршруты:
Route::post('/image/upload', 'ImageController@upload')->name('image.upload'); Route::get('/image/{url}', 'ImageController@show')->name('image.show');
Эти маршруты определяют, как обрабатывать запросы для загрузки и отображения изображений.
7. В представлении, где вы хотите отображать картинку, добавьте следующий код:
<form action="{{ route('image.upload') }}" method="POST" enctype="multipart/form-data"> @csrf <input type="file" name="image"> <button type="submit">Загрузить</button> </form>
Это создает форму для выбора файла и кнопку "Загрузить", которая отправляет выбранный файл на сервер.
8. Для отображения изображения используйте следующий код:
<img src="{{ route('image.show', $url) }}" alt="Изображение">
Замените $url
на фактический URL-адрес изображения.
Вот и все! Теперь ваш сайт Laravel может загружать и отображать изображения. Учтите, что этот код только основа, и вы можете настраивать его под свои потребности.