使用cURL PHP从Megaupload下载文件

时间:2011-12-29 07:17:48

标签: php curl megaupload

我正在编写一个脚本,将Megaupload中的文件下载到我的服务器上。我在PHP上使用cURL,我有登录脚本,下载cookie文件:

<?php
function login($username, $password){
$mega = curl_init();
curl_setopt($mega, CURLOPT_URL, "http://www.megaupload.com/?c=login");
curl_setopt($mega, CURLOPT_POST, true);
curl_setopt($mega, CURLOPT_POSTFIELDS, "login=1&redir=1&username=$username&password=$password");
curl_setopt($mega, CURLOPT_COOKIEFILE, dirname(__FILE__) . "/megaupload_cookie.txt");
curl_setopt($mega, CURLOPT_COOKIEJAR, dirname(__FILE__) . "/megaupload_cookie.txt");
curl_exec($mega);
curl_close($mega);
}
?>

和下载脚本:

 <?php
    include("megaupload_login.php");
    login("username", "ps");
    set_time_limit(0);    
    $url = "http://www.megaupload.com/?d=A428CAKH";
    $fp = fopen("winch.zip", "w");
    $dl = curl_init($url);
    curl_setopt($dl, CURLOPT_COOKIEFILE, "megaupload_cookie.txt");
    curl_setopt($dl, CURLOPT_FILE, $fp);
    curl_exec($dl);
    curl_close($dl);
    fclose($fp);
  ?>

问题是,文件没有下载。我得到的是一个名为winch.zip的文件,大小为0字节。我认为该程序实际上是在下载登录页面,因为当运行脚本时,浏览器只显示megaupload登录页面,但地址是localhost。关于为什么这可能不起作用的任何想法?

1 个答案:

答案 0 :(得分:1)

请尝试关注下载部分代码:


function download_file($link) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $link);
    curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . "/cookies/megaupload.txt");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);    
    curl_close($ch);
    return $result;
}
$filecontents = download_file("http://www.megaupload.com/?d=A428CAKH");

希望有所帮助