Показать изображение из частного хранилища для остальных API-клиентов в laravel - PullRequest
0 голосов
/ 19 января 2020

Я работаю над проектом laravel, и я сохранил несколько картинок в личной папке хранения.

Это config / filesystems. php:

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

Я хочу показать клиенту изображения с помощью rest api (мой клиент является приложением флаттера).

Я пытался использовать некоторые методы хранения файлов в Laravel, но это не помогло.

Это метод, который я пробовал, но когда я использую его URL, он говорит мне Не найдено:

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

Также я не хочу получать содержимое изображений, а затем возвращаю ответ, содержащий содержание картинки,

мне просто нужен URL картинки.

Любое предложение будет полезно.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 19 января 2020

пожалуйста, попробуйте:

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

или

$link = Storage::disk('frontend')->path($pic->avatar);
0 голосов
/ 19 января 2020

Самый простой способ решить эту проблему:

Переместите папку frontend внутрь storage\app\public

Затем позвоните

php artisan storage:link

И, наконец, вы может использовать метод url, чтобы получить URL для данного файла

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