файл существует — php: file_exists ошибка с запятой и пробелом

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

Почему загрузка работает нормально с запятая ИЛИ ЖЕ пространство в каталоге,
но терпит неудачу с И ТО И ДРУГОЕ запятая с последующим пространство?

Файл с ошибкой загрузки:

$the_download = "/share/Multimedia/Library1/John, Doe/test/cover.jpg";

Файлы, которые скачивают нормально:

$the_download = "/share/Multimedia/Library1/John,Doe/test/cover.jpg";
$the_download = "/share/Multimedia/Library1/John Doe/test/cover.jpg";

код:

$the_filename = "somefilename.jpg";

if (file_exists($the_download)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($the_filename));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($the_download));
flush();
readfile($the_download);
exit;
}
else die("File not found<br>" . $the_download);

0

Решение

Вы должны заключить имя файла в заголовок в двойные кавычки:

header('Content-Disposition: attachment; filename="'.basename($the_filename).'");
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]