free.fr免费10G主页空间上传大文件方法 - 阳光

free.fr免费10G主页空间上传大文件方法

2013-7-29 博主:阳光 教程

用fsockopen来远程下载文件,虽然会500错误,但是不会超时,文件会一直下载完成为止!
摘自JGWY.鸣谢:haowenq

测试代码如下:

XML/HTML代码
/****   
Powerd by haowenq   
Form www.jgwy.net   
2011.7.16   
****/   
$url="http://dbdown.2u.com.cn/system/ylmf_GHOSTXP_SP3V2010.8.iso";   
$fileName = basename($url);   
$urlParts = parse_url($url);   
$socketHandler = fsockopen($urlParts["host"], 80, $errno, $errstr, 30);   
if (!$socketHandler) {   
    exit("Connet error!");   
} else {   
    if (file_exists($fileName)) {   
        $from = filesize($fileName);   
    }   
    $out = "GET ".$urlParts["path"]." HTTP/1.0\r\n";   
    $out .= "Accept: */*\r\n";   
    $out .= "Accept-Language: en-us\r\n";   
    $out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";   
    $out .= "Host: ".$urlParts["host"]."\r\n";   
    $out .= "Connection: Close\r\n";   
    $out .= "Cache-Control: no-cache\r\n\r\n";   
    $headerFound = false;   
    if (!$fileHandler = fopen($fileName, "a")) {   
        exit("Can not open file!");   
    }   
    fwrite($socketHandler, $out);   
    while (!feof($socketHandler)) {   
        if ($headerFound) {   
                $result = fread($socketHandler, 8192);   
                if (fwrite($fileHandler, $result) === false) {   
                    exit("Can not save file!");   
                }   
        } else {   
            $result = fgets($socketHandler, 8192);   
            $result = trim($result);   
            if ($result === "") {   
                $headerFound = true;   
            }   
        }   
    }   
    fclose($fileHandler);   
    fclose($socketHandler);  
    echo "Well done!";     
}   
?>  
运行之后,本目录会多一个文件“ylmf_GHOSTXP_SP3V2010.8.iso”,下载完成之后大小为699.43 M!
附件同以上代码!

发表评论:

Powered by emlog