Как скачать файлы из папки хранилища в Laravel: методы и примеры кода

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

Метод 1: использование функции response()

use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Response;
public function downloadFile($filename)
{
    $path = storage_path('app/public/' . $filename);
    if (!Storage::exists($path)) {
        abort(404);
    }
    return response()->download($path);
}

Метод 2: использование метода download()

use Illuminate\Support\Facades\Storage;
public function downloadFile($filename)
{
    $path = storage_path('app/public/' . $filename);
    if (!Storage::exists($path)) {
        abort(404);
    }
    return Storage::download($path);
}

Метод 3: использование метода response()->file()

use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Response;
public function downloadFile($filename)
{
    $path = storage_path('app/public/' . $filename);
    if (!Storage::exists($path)) {
        abort(404);
    }
    return response()->file($path);
}

Метод 4. Использование метода Storage::response()

use Illuminate\Support\Facades\Storage;
use Illuminate\Http\Response;
public function downloadFile($filename)
{
    $path = storage_path('app/public/' . $filename);
    if (!Storage::exists($path)) {
        abort(404);
    }
    return Storage::response($path);
}

Метод 5: использование метода Storage::download()

use Illuminate\Support\Facades\Storage;
public function downloadFile($filename)
{
    $path = storage_path('app/public/' . $filename);
    if (!Storage::exists($path)) {
        abort(404);
    }
    return Storage::download($path);
}

Эти методы используют фасад StorageLaravel для доступа и загрузки файлов из папки хранилища. В примерах предполагается, что файлы хранятся на диске public, но вы можете изменить имя диска в соответствии с конфигурацией вашего хранилища.