繁体   English   中英

在 laravel 客户端中显示从私有存储到 rest api 客户端的图像

[英]Show image from private storage to rest api client in laravel

我正在研究一个 laravel 项目,我已经将一些图片保存在一个私人存储文件夹中。

这是 config/filesystems.php:

'frontend' => [
            'driver' => 'local',
            'root' => storage_path('app/frontend'),
            'url' => env('APP_URL') . '/storage/frontend',
],

我想使用 rest api 向客户端显示图像(我的客户端是 flutter 应用程序)。

我曾尝试在 Laravel 中使用一些文件存储方法,但这无济于事。

这是我尝试过的一种方法,但是当我使用它时它是 url 它对我说 Not Found:

Route::get('/show-pic', function () {
    $pic = Picture::find(1);
    $link = Storage::disk('frontend')->url($pic->avatar);
    return response()->json($link , 200);
});

我也不想获取图片的内容然后返回包含图片内容的响应,

我只需要图片的 url。

任何建议都会有所帮助。

谢谢你。

请尝试 :

$link = Storage::disk('frontend')->getAdapter()->getPathPrefix();

或者

$link = Storage::disk('frontend')->path($pic->avatar);

要解决这个问题,可以使用如下环境变量:

APP_URL='your_app_url'

然后在您的 controller 中,您可以像这样访问 url:

$imageUrl = $('APP_URL').'/uploads/'.$imageFileName;

这假设您的图像文件存储在 storage/uploads 中

解决此问题的最简单方法:

将您的frontend文件夹移动到storage\\app\\public

然后打电话

php artisan storage:link

最后你可以使用url方法来获取给定文件的 URL

Storage::disk('public')->url('frontend/' . $pic->avatar);

暂无
暂无

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

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