嗯,这看起来很简单,确实如此。要将文件下载到服务器,您所需要做的就是:
file_put_contents("Tmpfile.zip", file_get_contents("http://someurl/file.zip"));
只有一个问题。如果您有一个大文件(例如 100mb)怎么办?然后,您将耗尽内存,并且无法下载该文件。
我想要的是一种在下载文件时将文件写入磁盘的方法。这样,我可以下载更大的文件,而不会遇到内存问题。
从 PHP 5.1.0 开始,file_put_contents()支持通过传递流句柄作为逐段写入$data
范围:
file_put_contents("Tmpfile.zip", fopen("http://someurl/file.zip", 'r'));
从手册中:
If data[即第二个参数]是一个流资源,该流的剩余缓冲区将被复制到指定的文件。这与使用类似stream_copy_to_stream().
(Thanks Hakre.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)