note 81914 added to function.readfile
| From: | uisluu at gmail dot com | Date: | Wed, 19 Mar 2008 08:33:30 +0000 |
| Subject: | note 81914 added to function.readfile | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-137195@lists.php.net to get a copy of this message | ||
If you still encounter problems, downloading some types of binary files (.doc, .zip, .xls etc.) such
as corrupted bytes (esp. NUL(0x00) bytes replaced by spaces(0x20)) with readfile(), consider the
following replacement for use with download.php?file=somefile.ext
<?php
$downloadFolder = '/download/';
if ( !preg_match( '/^(\w)+\.(?!php|html|htm|shtml|phtml)[a-z0-9]{2,4}$/i',
$_GET['file'] ) ) {
error_log( "USER REQUESTed for:\t".$_GET['file'] );
die;
};
$filename = ROOT.$downloadFolder.$_GET['file'];
if ( !file_exists($filename) ) {
echo "No file here. [<a
href='javascript:self.close();'>close</a>]";
error_log( "USER REQUESTed for non-existing file:\t".$_GET['file'] );
exit;
};
$string = 'Location: '.HOST.$downloadFolder.$_GET['file'];
header($string);
exit;
?>
----
Server IP: 195.54.192.44
Probable Submitter: 84.204.230.26
----
Manual Page -- http://www.php.net/manual/en/function.readfile.php
Edit -- https://master.php.net/note/edit/81914
Del: integrated -- https://master.php.net/note/delete/81914/integrated
Del: useless -- https://master.php.net/note/delete/81914/useless
Del: bad code -- https://master.php.net/note/delete/81914/bad+code
Del: spam -- https://master.php.net/note/delete/81914/spam
Del: non-english -- https://master.php.net/note/delete/81914/non-english
Del: in docs -- https://master.php.net/note/delete/81914/in+docs
Del: other reasons-- https://master.php.net/note/delete/81914
Reject -- https://master.php.net/note/reject/81914
Search -- https://master.php.net/manage/user-notes.php