首页 >后端开发 >php教程 >如何在我的视图中访问 Laravel Storage 中存储的图像?

如何在我的视图中访问 Laravel Storage 中存储的图像?

Susan Sarandon
Susan Sarandon原创
2024-12-08 06:30:11561浏览

How Can I Access Images Stored in Laravel Storage Within My Views?

在视图中访问存储在 Laravel 存储中的图像

要访问存储在 Laravel 存储中的用户头像并在视图中渲染它们,您有多种选择.

方法一:符号式链接

建议的方法是在公共文件夹和存储图像的存储文件夹之间创建符号链接。这允许您访问存储文件夹中的文件,就像它们位于公用文件夹中一样。要创建符号链接,您可以使用以下命令:

php artisan storage:link

这将创建从 public/storage 到 storage/app/public 的链接。然后,您可以使用以下路径访问您的图像:

http://somedomain.com/storage/image.jpg

方法 2:指定路线(无符号链接)

如果创建符号链接不可行,您可以创建特定的路由来从存储文件夹中读取和提供图像。例如:

Route::get('storage/{filename}', function ($filename) {
    // Path to the file
    $path = storage_path('public/' . $filename);

    // Check if file exists
    if (!File::exists($path)) {
        abort(404);
    }

    // Retrieve file contents and mime type
    $file = File::get($path);
    $type = File::mimeType($path);

    // Create a response object
    $response = Response::make($file, 200);
    $response->header("Content-Type", $type);

    // Return the response
    return $response;
});

然后您可以使用以下路径访问图像:

http://somedomain.com/storage/image.jpg

性能注意事项

重要的是要注意与使用符号链接相比,使用路由手动提供文件会导致性能损失。这是因为整个 Laravel 请求生命周期都是为了检索文件内容而执行的。

以上是如何在我的视图中访问 Laravel Storage 中存储的图像?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn