php强制下载文件无效

时间:2015-03-06 06:18:03

标签: php downloadfile



    <?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;
&#13;
&#13;     使用此代码,我可以下载好。但如果我尝试打开下载的文件,该文件已损坏。代码有什么问题吗?

1 个答案:

答案 0 :(得分:0)

请确保在readfile之前或之后输出任何内容。之前会抛出有关已发送标头的错误,除非您在脚本开头使用输出缓冲(ob_start())。在您阅读完文件后添加exit()总是一个好主意,这样您就可以确保无意中附加任何内容。