Кратък откъс от документацията на LOAD_FILE()
MySQL функция:
КАКТО можете да видите, има безброй причини да извикате LOAD_FILE() неуспешно:
-
Файлът трябва да присъства на компютъра, на който работи MySQL сървърът. Това не винаги е същият компютър като този, на който се изпълнява PHP скриптът (и това се случва от съображения за сигурност). Ако работят на различни компютри, най-вероятно не можете да използвате
LOAD_FILE(). Случаят е приключен.На теория можете да използвате
FTPилиSFTPза прехвърляне на файла на компютъра, на който работи MySQL, но поради същите причини за сигурност вероятно нямате достъп до този компютър. -
Ако във вашия случай PHP и MySQL работят на един и същи компютър,
/images/picture.jpgе компонентът на пътя на URL адреса, а не път във файловата система. Можете да използватеdirname()и__DIR__за съставяне на пътя къмизображениядиректория, започвайки от пътя на текущия скрипт. -
Потребителят, който използвате за свързване към MySQL сървъра, трябва да има
max_allowed_packetкод>системната променлива е4 MiBно DBA може да го промени. Можете да стартиратеSELECT @@max_allowed_packet FROM dualза да разберете текущата му стойност. -
Ако
secure_file_privсистемната променлива е зададена, тогава пътят, който предоставяте, трябва да е относителен към тази директория. Отново можете да стартиратеSELECT @@secure_file_priv FROM dualза да намерите текущата му стойност.