Відкрийте можливості завантаження файлів у Laravel за допомогою Storage::download

2
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 12 березня, 2026
Хочете дізнатися, як легко та безпечно організувати завантаження файлів у Laravel? У нашій статті ми розглянемо можливості методу Storage::download, що спростить ваше життя під час роботи з файлами

Метод Storage::download у Laravel спрощує безпечну подачу файлів, пропонуючи зрозумілий API для завантаження та управління файловим сховищем.

<?php
 
namespace App\Http\Controllers;
 
use Illuminate\Support\Facades\Storage;
 
class FileController extends Controller
{
    public function download($filename)
    {
        return Storage::download(
            "documents/{$filename}",
            "custom-{$filename}",
            ['Content-Type' => 'application/pdf']
        );
    }
}

Ось приклад використання Storage::download() у контролері:

<?php
 
namespace App\Http\Controllers;
 
use App\Models\Document;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
 
class DocumentController extends Controller
{
    public function download(Request $request, Document $document)
    {
        if (!$request->user()->canDownload($document)) {
            abort(403);
        }
 
        if (!Storage::exists($document->path)) {
            abort(404, 'Файл не знайдено');
        }
 
        $document->increment('download_count');
 
        return Storage::download(
            $document->path,
            $document->original_name,
            [
                'Content-Type' => $document->mime_type,
                'Content-Disposition' => 'attachment',
                'Cache-Control' => 'no-cache, must-revalidate'
            ]
        );
    }
}

Отже, метод Storage::download забезпечує безпечну та ефективну подачу файлів, при цьому абстракуючи деталі постачальника сховища

Популярні

Logomark Logotype

Laravel Boost — ваш стартовий набір для програмування з використанням штучного інтелекту

Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel

Logomark Logotype

Випущено Livewire 3.6

Laravel Livewire випустив нову версію 3.6, яка приносить з собою цікаві HTML-директиви для управління видимістю DOM-елементів і JavaScript-діями. Досліджуйте нові можливості Livewire, що допоможуть вам створити ще більш інтерактивні користувацькі інтерфейси!

Logomark Logotype

Все, що потрібно знати про Laravel 13

Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?