My error logs are getting out of control with the two below errors
warning feof() expects parameter 1 to be resource
and
warning fread() expects parameter 1 to be resource
The bit of code responsible is
<?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);
?>
I used this code for header downloads but its freaking out right now - before anyone asks what I have tried, I tried google but still don't fully understand the error message.
fopen fails and returns false. false is not a resource, thus the warning.
You'd better test $fp before injecting it as a resource-like argument:
if(($fp = fopen($file, "r"))) {
[...]
}
I recently encountered this problem. The code ran perfectly on my local environment. But when it was loaded to the server, I got the message discussed in this thread. At the end, the problem was that the server is case-sensitive on file names, while my local environment is not. After having corrected the file name, everything started to work.
From PHP 7, you can now use the far more efficient method: -
$fileRecs = 0;
$file = new SplFileObject('textfile.txt, 'r');
$file->seek(PHP_INT_MAX);
$fileRecs = $File->key() + 1;
echo "fileRecs=".$fileRecs;
See http://php.net/manual/en/class.splfileobject.php
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With