Ошибка хранения изображений в люмене: путь вне заданного root - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь принять изображение в приложении внешнего интерфейса для моего API, а затем сохранить его обратно в путь в приложении внешнего интерфейса, однако я получаю следующую ошибку:

Путь находится за пределами определенный root, путь: [../../frontend/public/productimages/__test.jpg]

В основном я использовал мультиформные данные для загрузки файла изображения.

Если я сделаю это: $file->storeAs('public', '__test.jpg'); Тогда файл будет храниться в каталоге бэкэнда Lumen, но я бы предпочел поместить его в мой каталог внешнего интерфейса.

Когда я регистрирую base_path() в своем API бэкэнда Lumen, я получить следующее:

C: \ Projects \ website \ backend

Как вместо этого сохранить изображение в:

C: \ Projects \ website \ frontend \ publi c

1 Ответ

0 голосов
/ 18 января 2020

Попробуйте публично сохранить файл следующим образом:

$file->storeAs('productimages', '__test.jpg', 'public');

Таким образом, ваш файл будет храниться на storage/app/public/productimages. Чтобы сделать ваш файл доступным из Интернета, вы должны создать символическую c ссылку от public/storage до storage/app/public через artisan:

php artisan storage:link

Затем вы можете получить доступ к своему файлу на public/storage/productimages, который доступны через Интернет: http://your-domain.com/storage/productimages/__test.jpg

Вы также можете вручную создать символическую c ссылку от C:\Projects\website\frontend\public до C:\Projects\website\backend\storage\app\public на windows cmd:

mklink /d "C:\Projects\website\frontend\public" "C:\Projects\website\backend\storage\app\public"

См. Laravel документов для получения дополнительной информации.

...