在我的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列存储在我的数据库中,如下所示:
content \ lesson2 \ topic3 \ WSjrlG9a1ermGDOvRJTjn9iEIhfFvhVzjaOs6l79.mp4
如何在Blade模板中显示文件?我在网上搜索,但没有结果。
答案 0 :(得分:1)
您可以使用这样的方法
public function showFile() {
header("Content-type: video/mp4");
return Storage::get($filePath);
}
我希望这会有所帮助。
答案 1 :(得分:0)
您可以通过两种方式访问storage
目录中的文件。
如果您的文件可以公开访问,则可以遵循laravel public disk。
如果文件是受保护的或私有的,则可以声明访问文件的路径。
Route::get('content/{lesson}/{topic}/{file}', function($lesson, $topic, $file)
{
//Check access logic
$filePath = '/content/' . $lesson . '/' . $topic . '/' . $file;
return Storage::get($filePath);
});