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;
}
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn