Laravel 4.2,保存和访问存储文件夹中的文件



我正在做一个 laravel 4.2 项目,我应该上传视频,将它们保存在存储文件夹中,然后将它们显示在用户可以播放这些视频的页面中。保存视频的第一部分已完成,但问题是获取文件。

我到处找,与Laravel 5.x不同,似乎没有明确的方法来访问存储文件夹并获取文件(甚至无法使用Storage::get(。

作为一个简单的测试示例,我从存储文件夹内部链接一个简单的图像开始,仍然不起作用。我尝试了 URL 功能(刀片(

<img src="{{url('code/app/storage/files/videos/gg.jpg') }}"/>

当浏览器编译时,它会给出以下行:

<img src="http://dr.test/userptl/code/app/storage/files/videos/gg.jpg"/>

路径代码/应用程序/存储/文件/视频/gg.jpg正确,但仍然无法访问图像。

不能使用 storage_path((,因为它从根生成完整路径,这是不正确的。

有什么办法可以解决这个问题吗?

上传文件时,它会存储在临时文件夹中。 您必须将其移动到可公开访问的文件夹中,例如。 $file = $request->file('file'); Storage::put($path.'/'.$newFilename, file_get_contents($file));

您可能需要在存储和公共之间具有符号链接才能使这些文件可访问。

如果您不使用

php artisan storage:link

将以下代码添加到路由器:

Route::get('storage/{filename}', function ($filename)
{
$path = storage_path('public/' . $filename);
if (!File::exists($path)) {
abort(404);
}
$file = File::get($path);
$type = File::mimeType($path);
$result = Response::make($file, 200);
$result->header("Content-Type", $type);
return $result;
});

然后,在视图中,您可以使用以下内容:

<img src="{{ asset("storage/gg.jpg")}}"/>

相关内容

  • 没有找到相关文章

最新更新