Sometimes we need to hide the actual file download address, prevent malicious download, we can use the following method (refer to the network, infringement please inform)
The following is the referenced content:
$file _name = "Example.exe";
$file _dir = "/public/www/download/";
if (!file_exists ($file _dir. $file _name)) {//check if file exists
echo "File not found";
Exit
} else {
$file = fopen ($file _dir. $file _name, "R"); Open File
Input File Label
Header ("Content-type:application/octet-stream");
Header ("Accept-ranges:bytes");
Header ("Accept-length:". FileSize ($file _dir. $file _name));
Header ("content-disposition:attachment; Filename= ". $file _name);
Output file contents
Echo fread ($file, FileSize ($file _dir. $file _name));
Fclose ($file);
Exit
}
If the file is a remote file, the original code will be slightly changed, the program is as follows:
The following is the referenced content:
$file _name = "Example.exe";
$file _dir = "http://back.zhizhi123.com/";
$file = @ fopen ($file _dir. $file _name, "R");
if (! $file) {
echo "File not found";
} else {
Header ("Content-type:application/octet-stream");
Header ("content-disposition:attachment; Filename= ". $file _name);
while (!feof ($file)) {
Echo fread ($file, 50000);
}
Fclose ($file);
}
This will enable you to output the file directly with PHP.