假设down.php的主要内容如下:

header("Location: http://www.codigg.com/download/src-name.rar");
exit;

下载如果要用原文件名保存文件,方法如下:

function curl_download($remote)  {
    // 文件内容先保存到临时文件
    $local="tmp." . rand();
    $cp = curl_init($remote);
    $fp = fopen($local, "w");
 
    curl_setopt($cp, CURLOPT_FILE, $fp);
    curl_setopt($cp, CURLOPT_HEADER, 0);
    // 处理跳转
    curl_setopt($cp, CURLOPT_FOLLOWLOCATION , true);
    // 执行
    curl_exec($cp);
 
    // 获取curl信息,注意:这句话要放到curl_exec后面
    $info = curl_getinfo($cp);
    // 从curl信息中获取文件名
    $realname = basename($info["url"]);
 
    // 关闭
    curl_close($cp);
    fclose($fp);
 
    // 将临时文件改名为realname
    rename($local,$realname);
 
    // 返回真名
    return $realname;
}
 
// 测试,输出结果应该是:codigg-3d-chart-demo.rar
echo curl_download("http://www.codigg.com/demo/php-curl-down-demo.php");

以前都是直接用shell下载,没用过php-curl,不知道这个方法好不好。请大家指正一下。