PHP 弹出文件下载 原理 代码
/**
* @author default7<default7@zbphp.com>
* @description 演示PHP弹出下载的原理
*
* @param $file_name
*/
function downFile($file_name)
{
$file_path = "/tmp/" . $file_name;
$buffer = 102400; //一次返回102400个字节
if (!file_exists($file_path)) {
echo "<script type='text/javascript'> alert('对不起!该文件不存在或已被删除!'); </script>";
return;
}
$fp = fopen($file_path, "r");
$file_size = filesize($file_path);
$file_data = '';
while (!feof($fp)) {
$file_data .= fread($fp, $buffer);
}
fclose($fp);
//Begin writing headers
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-type:application/octet-stream;");
header("Accept-Ranges:bytes");
header("Accept-Length:{$file_size}");
header("Content-Disposition:attachment; filename={$file_name}");
header("Content-Transfer-Encoding: binary");
echo $file_data;
}
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn