Недавно я наткнулся на удобный способ доступа к файловой системе и получения ценной информации, такой как наличие файлов и папок или их содержимое. Это может быть очень полезно в качестве альтернативы функции PHP ` file_exists` , поскольку информация о существовании файла (или файлов) может быть использована в запросе для дальнейшей сортировки и агрегирования.
Если у соответствующего пользователя базы данных есть права доступа к файлам , команду можно использовать.
SELECT LOAD_FILE(*PFAD ZUR DATEI*)
Во время запроса не только проверяют, существует ли файл, но и считывают его содержимое.
В системах Windows следует отметить, что обратная косая черта должна быть отмечена соответствующим образом в пути к файлу (пример: C: \ Windows \ System32 \ drivers \ etc \ hosts). Аспект безопасности также не следует полностью игнорировать, поскольку, когда предоставляется привилегия FILE, доступ к базе данных автоматически означает доступ к остальной части файловой системы.
Чтобы гарантировать, что возвращаются не только значения NULL, необходимо убедиться, что пользователь, использующий MySQL, имеет права чтения.
Чтобы также получить доступ к большим файлам, необходимо увеличить глобальное свойство max_allowed_packet, равное 1 МБ.
mysql -u... -p... set global max_allowed_packet = 1024 * 1024 * 512; exit;
Теперь вы можете (после перезапуска сервера) получить доступ к файлам размером до 512 МБ.