index.php中有一超连接<a href="download.php?url=c5eca664" >下载</a>,点击这个超连接,会弹出IE下载对话框,也能正常下载。
现在的问题是:我用讯雷试着下载,即使速度限制成20K/s,再在index.php这个页面中点击浏览其他信息或者刷新这一页,速度都很慢。但是你在IE中另外在打开一个index.php页面则很快,点击浏览上面的信息也很快。
不知道是什么原因?是不是php不支持多线程的原因?

解决方案 »

  1.   

    是不是php不支持多线程的原因?
    ===你是用迅雷下载的,和php是否支持多线程有关系吗?
      

  2.   

    我的意思是说,是不是download.php在下载的时候已经把服务器上的某个线程或进程占满了,使再次点击index.php中的连接时服务器没有办法即使响应?这是我的猜测。
      

  3.   

    还有一点就是只要在下载过程中那怕是暂停一秒钟,index.php的页面就可以马上响应,但是只要再继续下载,点击index.php上的连接就卡住(响应很慢很慢)。我的服务器情况是centos 5.4 httpd-2.2.3-31 php-5.1.6-23.2 mysql-server-5.0.77-3。
    请大家帮小弟分析一下原因,谢谢!
      

  4.   

    建议你贴DOWNLOAD.PHP页面代码我没有出现过你这个问题
      

  5.   

    是断点续传,只是要下载的文件不在html目录下!
    $filename=$FileDir.$fname;
    $filesize = sprintf("%u", filesize($filename));
    if (!$filesize){
    echo "文件不存在了!\n";
    exit;

    header("Content-type:application/octet-stream");
    Header("Content-type:application/x-rar"); 
    header("Content-disposition:attachment;filename=".$fname);
    Header("Accept-Ranges: bytes");Header('Content-transfer-encoding: binary'); if($range = getenv('HTTP_RANGE')) 

     $range = explode('=', $range);
    $range = $range[1];
    header("HTTP/1.1 206 Partial Content"); 
    header("Date: " . gmdate("D, d M Y H:i:s") . " GMT"); 
    header("Last-Modified: ".gmdate("D, d M Y H:i:s", filemtime($filename))." GMT"); 
    header("Accept-Ranges: bytes"); 
    header("Content-Length:".($filesize - $range)); 
    header("Content-Range: bytes ".$range.($filesize-1)."/".$filesize); 
    header("Connection: close"." "); 
    }
    else
    {
    header("Content-Length: ".$filesize);
    $range=0;
    }
    $fp = @fopen($filename, "rb");
    fseek($fp, $range);while($bbsf = @fread($fp, 2048))
    {
    echo $bbsf;}
    @fclose($fp);
    ?>