首页 新闻 搜索 专区 学院

php断点续传

0
悬赏园豆:50 [已关闭问题] 关闭于 2014-08-08 12:14

   $file_dir = '/demo/';   
        $filename = 'text.txt';
        $sourceFile = $file_dir.$filename;
        $fp = fopen($sourceFile, "rb");
        //检测文件是否存在  
        if (!is_file($sourceFile)) {  
            die("<b>404 File not found!</b>");  
        } 
        $filename = basename($sourceFile); //获取文件名字  
        $file_size = filesize($sourceFile);  
        $size2 = $file_size -1; //文件总字节数

        $ctype = "application/vnd.android.package-archive";
        header("Cache-Control:");  
        header("Cache-Control: public");  
          
        //设置输出浏览器格式  
        header("Content-Type: $ctype");  
        header("Content-Disposition: attachment; filename=" . $filename);  
        header("Accept-Ranges: bytes");  

        if (isset($_SERVER ['HTTP_RANGE'] )) {
            if (preg_match ( '/bytes=\h*(\d+)-(\d*)[\D.*]?/i', $_SERVER ['HTTP_RANGE'], $matches )) {
                // 读取文件,起始节点
                    $begin = intval ( $matches [1] );
                // 读取文件,结束节点
                if (! empty ( $matches [2] )) {
                    $end = intval ( $matches [2] );
                }
            }
            $new_length = $file_size - $begin; //获取下次下载的长度  
            header("HTTP/1.1 206 Partial Content");  
               header("Content-Length: $new_length"); //输入总长  
               header("Content-Range: bytes $begin-$size2/$file_size" );
        }else{  
                header("Content-Range: bytes 0-$size2/$file_size"); //Content-Range: bytes 0-4988927/4988928  
                header("Content-Length: " . $file_size); //输出总长    
            }  

        $buffer=1024;  
        fseek($fp, $begin);  
        $file_count=0;  
        while(!feof($fp) && ($file_size-$file_count>0)){  
            $file_data=fread($fp,$buffer);
            $file_count+=$buffer;
            echo $file_data;
        }  
        fclose($fp);  
        exit ();

文件直接下载可以安装,断点那一块,文件下载完之后总是不能够安装,什么愿意,代码哪里错了?大神求解答。调试一天也没调出来,试了很多种方法。

问题补充:

为什么没有人给我点提示呢????

strive_zl的主页 strive_zl | 菜鸟二级 | 园豆:210
提问于:2014-08-07 19:15
< >
分享
所有回答(1)
0

服务器端出现问题了  ,哎   我说怎么回事呢

strive_zl | 园豆:210 (菜鸟二级) | 2014-08-08 12:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册