Привет! В этом руководстве я покажу вам, как пошагово загрузить изображение в Laravel 12. Если вы новичок в Laravel или просто ищете простой и понятный способ обработки загрузки изображений, вы попали по адресу.
Мы рассмотрим все, от настройки проекта, создания формы загрузки, хранения изображений и отображения их на вашем веб-сайте. Не волнуйтесь — я сделаю все простым и понятным.
Итак, начнем и загрузим ваше первое изображение в Laravel 12!
Как загрузить файл в Laravel 12
Шаг 1: Установка Laravel 12
Если вы еще не установили Laravel 12, создайте новый проект, используя:
laravel new image-upload-tutorial
Шаг 2: Настройка маршрутов
Откройте routes/web.php и определите маршруты для отображения формы загрузки и обработки отправки.
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\FileUploadController;
Route::get('/upload', [FileUploadController::class, 'showForm']);
Route::post('/upload', [FileUploadController::class, 'uploadFile']);
Шаг 3: Создание контроллера
Для создания контроллера выполните следующую команду:
php artisan make:controller FileUploadController
Теперь откройте app/Http/Controllers/FileUploadController.php и обновите его следующим образом:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class FileUploadController extends Controller
{
public function showForm()
{
return view('upload');
}
public function uploadFile(Request $request)
{
$request->validate([
'file' => 'required|image|mimes:jpeg,png,jpg,gif,pdf,csv,xls|max:2048',
]);
$fileName = time().'.'.$request->image->extension();
$request->file->move(public_path('uploads'), $fileName);
return back()->with('success', 'File uploaded successfully!')->with('file', $fileName);
}
}
Шаг 4: Создание представления Blade
Создайте новый Blade-файл resources/views/upload.blade.php и добавьте следующий код:
<!DOCTYPE html>
<html>
<head>
<title>Laravel 12 File Upload</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.3.0/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-5">
<h2 class="mb-4">Laravel 12 File Upload</h2>
@if(session('success'))
<div class="alert alert-success">{{ session('success') }}</div>
<img src="{{ asset('uploads/' . session('file')) }}" width="300">
@endif
<form action="{{ url('/upload') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="mb-3">
<label class="form-label">Choose File:</label>
<input type="file" name="file" class="form-control">
@error('image')
<div class="text-danger">{{ $message }}</div>
@enderror
</div>
<button type="submit" class="btn btn-primary">Upload</button>
</form>
</div>
</body>
</html>
Шаг 5: Запустите приложение
Запустите свой сервер разработки Laravel:
php artisan serve
Теперь вы знаете как просто Как загрузить файл в Laravel 12