在处理下载的脚本中,要设置http相应头,在Header()函数执行之前不能有任何输出语句,如果有会有错误,下面代码中注释掉的语句写在那里是错误的。
<?php
//echo 'test'."<br/>";
//echo '<pre>';
//print_r($_GET);
//echo '</pre>';
$file = $_GET['file'];
if(file_exists($file) === FALSE)
{
dir('the file does not exist!');
}
else
{
$fp = fopen($file,"r");
//write the http response header
Header("Content-type:application/octet-stream");
Header("Accept-Ranges:bytes");
Header("Accept-Length:".filesize($file));
Header("Content-Disposition:attachment;filename=".$file." from devin");
$buffer = 1024;
while(!feof($fp))
{
$file_data = fread($fp,$buffer);
echo $file_data;
}
//echo fread($file,filesize($file));
fclose($fp);
exit();
}