Laravel 5.5 получить файл после загрузки с хранилища - PullRequest
0 голосов
/ 24 июня 2018

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

        if ($request->hasFile('content_uz'))
        {
            $path = $request->file('content_uz')->store('/content/lesson'.$topic->lesson->id.'/topic'.$topic->id);
            $data->content_uz = $path;
        }
        if ($request->hasFile('content_ru'))
        {
            $path = $request->file('content_ru')->store('/content/lesson'.$topic->lesson->id.'/topic'.$topic->id);
            $data->content_ru = $path;
        }

Загрузка прошла успешно. Путь к загруженному файлу «content_uz» хранится с путем «storage / app / content / lesson2 / topic3», а столбец content_uz хранится в моей БД, как показано ниже:

содержание \ lesson2 \ topic3 ​​\ WSjrlG9a1ermGDOvRJTjn9iEIhfFvhVzjaOs6l79.mp4

Как я могу отобразить файлы в моем шаблоне Blade? Я искал в Интернете, но безрезультатно.

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Вы можете получить доступ к файлам каталога storage двумя способами.

  1. Если ваши файлы общедоступны, вы можете следовать общедоступному диску laravel .

  2. Если ваши файлы защищены или закрыты, вы можете объявить маршрут для доступа к файлам.

    Route::get('content/{lesson}/{topic}/{file}', function($lesson, $topic, $file) 
    {
        //Check access logic
    
        $filePath = '/content/' . $lesson . '/' . $topic . '/' . $file;
    
        return Storage::get($filePath);
    });
    
0 голосов
/ 24 июня 2018

Вы можете использовать метод, подобный этому,

public function showFile() {
    header("Content-type: video/mp4");
    return Storage::get($filePath);
}

Я надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...