file_exists возвращает false по неизвестной причине - PullRequest
0 голосов
/ 02 февраля 2011

У меня есть следующий файл:

/home/user/public_html/web-site.org/download/audio/1999/01-03 Good News.mp3

Проблема в том, что выдается ошибка, и файл закрывается, когда он существует. Я проверяю для file_exists, потому что я делаю copy() позже, и это терпит неудачу, потому что файл не существует. Я размещен на hostGator и мои разрешения для этих mp3-файлов 755.

if (!file_exists('/home/user/public_html/web-site.org/download/audio/'.$sermon['year'].'/'.$sermon['file'])) {
    echo "Oops, file doesn't exist: <b>/home/user/public_html/web-site.org/download/audio/".$sermon['year']."/".$sermon['file']."</b>";
    exit;
}

Может ли это быть пробел в имени файла? У меня есть около 1100 аудиофайлов для обработки, поэтому изменение имени файла вручную было бы кошмаром ...

обновление

urlencode() и trim() на имя файла не влияет

str_replace(' ', '-', $sermon['file']) в имени файла не работает (после замены пробелов на тире в самом имени файла)

Я проверил разрешения для папки, в которой находится файл, она была 700, и я изменил ее на 755, и она не имела никакого эффекта.

обновление

Я читал в другой ветке, что наличие . в пути в любом месте может вызвать проблемы ... поэтому я изменил .org на _org, и проблема не исчезла, поэтому я отменил эти изменения.

Ответы [ 2 ]

0 голосов
/ 02 февраля 2011

Ух ты ... неудача с моей стороны ... Эпическая ошибка ... Мой путь пользователя был неверным

0 голосов
/ 02 февраля 2011

Попробуйте экранировать пробелы в имени файла.

/home/user/public_html/web-site.org/download/audio/1999/01-03\ Good\ News.mp3
...