【问题标题】:download file from absolute path (other domain) [duplicate]从绝对路径(其他域)下载文件[重复]
【发布时间】:2025-11-26 15:00:02
【问题描述】:

可能重复:
Best way to download a file in PHP

我被要求下载几个视频,格式如下:

http://website.com/asset/v00/488/618.asx

我找不到路(另存为.. 是不可能的,所有这些 youtube 下载服务都说“服务未知”)。我可以用一些 php 脚本来做吗?

如果能够调用如下函数就太好了:

function downloadFile($url){
   //prompt download

}

【问题讨论】:

    标签: php url download


    【解决方案1】:

    如果文件很大,您必须使用 fopen() 在将传入数据写入磁盘时读取其内容:

    $fp = fopen('http://website.com/asset/v00/488/618.asx', 'r');
    $fpl = fopen('local/618.asx', 'w');
    while(!feof($fp)){
        fwrite($fpl, fread($fp, 1024));
    }
    fclose($fp);
    fclose($fpl);
    

    否则,如果文件很小,您可以将其 file_get_contents() 放到内存中,然后使用 file_put_contents() 转储...

    【讨论】:

    • 什么是 kb 的大小?这段代码给了我:警告:fopen(thomson.co.uk/asset/v00/488/618.asx)[function.fopen]:打开流失败:HTTP请求失败! HTTP/1.1 404 Not Found in /home/toni005/public_html/toniweb.us/downloader/d.php on line 6 警告:fopen() 至少需要 2 个参数,1 个在 /home/toni005/public_html/toniweb.us 中给出第9行的/downloader/d.php(无限次,我的电脑内存崩溃了)
    • Big 超过几 MB,因为这就是您的内存进程可用的内容。这取决于服务器,在 8 到 32 MB 之间。您忘记了第二个参数,这就是您的错误所说的。第二个参数是写部分的'w'或读部分的'r'......