php强制下载远程文件

php下载文件其实不是很难,不过一般是下载内网(服务器内部)的文件,那样直接写简单的下载程序即可,如果要下载远程的文件,比如文件地址是http://abc.com/xxxx.mp3,这样的第三方文件用强制下载,直接输出即可。当然下面的代码是实现简单是下载,并没有设置下载保存的位置。文件后缀等用函数直接调用就行了,我为了方便直接写死了。

function GetHttpfile($file,$name='musci')
{
    $file = @ fopen($file,"r");
    if (!$file) {
        return array('code'=>1,'msg'=>'文件异常');
    } else
    {
        Header("Content-type: application/octet-stream");
        header("Content-type: application/octet-stream");
        header("Accept-Ranges: bytes");
        header("Accept-Length:". filesize($file));
        Header("Content-Disposition: attachment; filename=" .rand(1111,9999).$name. '.mp3');
        while (!feof ($file))  {
            ob_clean();
            echo fread($file,50000);
        }
        fclose ($file);
    }
    return array('code'=>1,'msg'=>'文件异常!');
}

评论/留言