2016-06-23 6 views
0

Как вы думаете, я должен организовать хранение изображений в моем приложении Laravel? Например, у меня есть панель администрирования self-build и модуль Articles. В каждой статье может быть изображение, которое я должен загрузить со страницы редактирования статьи в панели администратора. Таким образом, этот образ должен быть доступен, например, /images/somehash.jpg. Но я не могу предоставить права приложений для записи в общей папке по соображениям безопасности. Какие варианты решения этой проблемы у меня есть?Laravel: сохранение изображений в общей папке приложения

  1. Создайте приватную папку, например. {app_root}/storage/images, создать маршрут, который обрабатывает URL/изображения/*, считывает изображение из хранилища и возвращает его;
  2. Возможно, некоторые обходные пути с .htaccess;
  3. Вы вариант (ы)?

Спасибо!

+0

Почему бы вам не написать в общую папку, какие именно причины безопасности у вас есть? –

+0

Я имею в виду, если я сделаю запись в общедоступной папке в системе UNIX - там все могут писать (если использовать PHP как модуль Apache), и это будет потенциальное отверстие безопасности –

ответ

0

Если вы не хотите хранить изображения в каталоге public, а затем создайте каталог storage/app/images и сохраните его.

В зависимости от требований вашего приложения может потребоваться создание маршрутов для чтения этих изображений.

0

Если вы сохраняете свои изображения в своей общей папке или в частной папке, это зависит от вашей логики. Когда вы загружаете файлы в общую папку, эти файлы могут быть загружены непосредственно с веб-сервера без запуска приложения Laravel . Но если вы решили хранить файлы в частной папке, тогда эти файлы являются частными, а запросчик должен получить эти файлы из вашего приложения Laravel. Поэтому, если ваши файлы открыты для всех (например, файлы CSS или JS), это означает, что вы можете поместить их в общую папку. Но если по какой-либо причине ваши файлы имеют какие-либо ограничения или какие-либо проверки, которые необходимо проверить, прежде чем позволить пользователям получить доступ к этому файлу, вы можете загрузить эти файлы в личную папку.