Как загрузить файл в Laravel 12

Привет! В этом руководстве я покажу вам, как пошагово загрузить изображение в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *