Методы загрузки PDF-файлов в Laravel: подробное руководство

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

Способ 1: использование встроенной функции загрузки файлов

<form action="{{ route('upload') }}" method="POST" enctype="multipart/form-data">
    @csrf
    <input type="file" name="pdf_file">
    <button type="submit">Upload</button>
</form>

В вашем контроллере:

public function upload(Request $request)
{
    if ($request->hasFile('pdf_file')) {
        $file = $request->file('pdf_file');
        $file->storeAs('pdfs', $file->getClientOriginalName(), 'public');
        // Your logic to save the file path or perform any additional operations
        return "File uploaded successfully.";
    }
    return "No file selected.";
}

Способ 2: использование стороннего пакета (например, файловой системы Laravel)
Сначала установите пакет:

composer require league/flysystem

В вашем контроллере:

use Illuminate\Support\Facades\Storage;
public function upload(Request $request)
{
    if ($request->hasFile('pdf_file')) {
        $file = $request->file('pdf_file');
        $path = Storage::disk('public')->putFile('pdfs', $file);
        // Your logic to save the file path or perform any additional operations
        return "File uploaded successfully.";
    }
    return "No file selected.";
}

Метод 3. Использование специального пакета для загрузки файлов (например, библиотеки мультимедиа Laravel)
Сначала установите пакет:

composer require spatie/laravel-medialibrary

В вашей модели:

use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class Document extends Model implements HasMedia
{
    use InteractsWithMedia;
}

В вашем контроллере:

public function upload(Request $request)
{
    if ($request->hasFile('pdf_file')) {
        $document = new Document;
        $document->addMediaFromRequest('pdf_file')->toMediaCollection('pdfs');
        // Your logic to save the file path or perform any additional operations
        return "File uploaded successfully.";
    }
    return "No file selected.";
}

Это всего лишь несколько способов загрузить PDF-файл с помощью Laravel. Не забудьте изменить код в соответствии с вашими конкретными требованиями и настройками хранилища файлов.