[英]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
Storage::disk('public')->url('frontend/' . $pic->avatar);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.