繁体   English   中英

Laravel 5.5通过存储上传后获取文件

[英]Laravel 5.5 get file after uploading with Storage

在我的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模板中显示文件? 我在网上搜索,但没有结果。

您可以使用这样的方法,

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

我希望这将有所帮助。

您可以通过两种方式访问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); }); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM