如题
php header实现下载 下载时页面上的其它链接不能打开 必须先下载完或停止下载
而且 不能同时下载多个 只能下载一个接着再另一个这是啥问题啊
怎么解决啊
   $sw = new software();
   $software = $sw -> GetSoftwareById($_REQUEST['software_id']);
 $filename = basename($software->software_download_url); //取文件名
 $pathinfo = pathinfo($filename);
 $extension =  $pathinfo['extension']; //取得扩展名
 $filenewname = $software->software_name.'-'.$software->software_version.'.'.$extension;
 $filesize = filesize($software->software_download_url);
 if(ob_get_length() !== false) @ob_end_clean(); //清除以前的缓冲
 header('Cache-control: private');
 header("Content-Description: File Transfer"); 
 header("Content-Transfer-Encoding: binary"); 
 
 header('Content-type: application/force-download');
 header('Content-Disposition: attachment; filename="'.$filenewname.'";');
 header('Content-length: '.$filesize);
 
   $file = @fopen($software->software_download_url,"rb");
          $times = (100 * 1024)/8192;
 while (!feof($file)) {
$i = 0;
while($i < $times){
        echo fread($file, 8192);
$i =$i+1;
}
   unset($i);
   ob_flush();
   flush();
   sleep(1);
 }

解决方案 »

  1.   

    发现问题了 不是下载的问题 是要打开的页面中有session_start()
    不知道怎么回事 去掉session_start()就可以访问 添加就不行
      

  2.   

    判断“下载完或停止下载”,已经超出了php的能力了。
    你需求很怪,不知道你是不是担心服务的负载。你把很多下载资源放在一个页,然后打算同一时刻只能下载同一资源。你完全可以多放几个页,这样你的广告还有了多次的展示机会。