Php Laravel 5.5在使用存储上传后获取文件

Php Laravel 5.5在使用存储上传后获取文件,php,laravel,storage,laravel-5.5,Php,Laravel,Storage,Laravel 5.5,在我的Laravel5.5项目中,我在显示上传的文件时遇到了问题。我使用存储上传了这些文件。控制器的存储操作部分如下所示 if ($request->hasFile('content_uz')) { $path = $request->file('content_uz')->store('/content/lesson'.$topic->lesson->id.'/topic'.$topic->id);

在我的Laravel5.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列存储在my db中,如下所示:

content\lesson2\topic3\WSjrlG9a1ermGDOvRJTjn9iEIhfFvhVzjaOs6l79.mp4


如何在刀片模板中显示文件?我在网上搜索了一下,但是没有结果。

你可以用这样的方法

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

我希望这会有所帮助。

您可以通过两种方式访问
存储
目录中的文件

  • 如果您的文件可以公开访问,那么您可以遵循

  • 如果您的文件是受保护的或私有的,则可以声明访问这些文件的路由

    Route::get('content/{lesson}/{topic}/{file}', function($lesson, $topic, $file) 
    {
        //Check access logic
    
        $filePath = '/content/' . $lesson . '/' . $topic . '/' . $file;
    
        return Storage::get($filePath);
    });
    

  • 您的意思是,如果我的文件不是公共文件,我需要打开route以将其称为src=“file\u path”??