warning feof () ожидает, что параметр 1 будет ресурсом

Мои журналы ошибок выходят из-под контроля с двумя приведенными ниже ошибками

warning feof() expects parameter 1 to be resource 

а также

 warning fread() expects parameter 1 to be resource 

Бит кода, ответственный за

 <?php $file = '../upload/files/' . $filex; header("Content-Disposition: attachment; filename=" . urlencode($file)); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Description: File Transfer"); header("Content-Length: " . filesize($file)); flush(); // this doesn't really matter. $fp = fopen($file, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); ?> 

Я использовал этот код для загрузки заголовков, но теперь его волнующий вопрос – прежде чем кто-нибудь спросит, что я пробовал, я попробовал Google, но до сих пор не понимаю сообщение об ошибке.

fopen завершает работу и возвращает false. false – не ресурс, поэтому предупреждение.

Вам лучше проверить $ fp, прежде чем вводить его в качестве ресурсоподобного аргумента:

 if(($fp = fopen($file, "r"))) { [...] } 

Я недавно столкнулся с этой проблемой. Код отлично работал в моей локальной среде. Но когда он был загружен на сервер, я получил сообщение, обсуждаемое в этом потоке. В конце концов, проблема заключалась в том, что сервер учитывает регистр в именах файлов, а моя локальная среда – нет. После исправления имени файла все приступило к работе.