<?php
if (isset($_GET['download']))
{
$id=mysql_real_escape_string($_GET['download']);
$query1="SELECT * FROM files WHERE file_id='$id'";
$doquery1= mysql_query($query1) or die(mysql_error());
$count=mysql_num_rows($doquery1);
if ($count==1)
{
while ($result1=mysql_fetch_assoc($doquery1))
{
$f=$result1['floc'];
$filename = "/file"."$id"."-"."$f";
$file="uploads".$filename;
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Content-Length: ' . filesize($file));
readfile($file);
}
}
}?>
&#13;
答案 0 :(得分:0)
请确保在readfile
之前或之后输出任何内容。之前会抛出有关已发送标头的错误,除非您在脚本开头使用输出缓冲(ob_start()
)。在您阅读完文件后添加exit()
总是一个好主意,这样您就可以确保无意中附加任何内容。