在PHP中,有没有一种方法可以让服务器直接将文件下载到文件系统?

在PHP中,有没有一种方法可以让服务器直接将文件下载到文件系统?,php,download,server-to-server,Php,Download,Server To Server,我需要我的服务器下载一个文件并将其写入服务器的文件系统。问题是我看到的所有PHP示例都将文件下载到服务器RAM中,然后写入文件 由于我处理的是大文件,我希望PHP从另一台服务器读取文件,并立即将读取的内容写入本地文件。使用curl如下: <?php $url = 'http://www.example.com/a-large-file.zip'; $path = '/path/to/a-large-file.zip'; $fp = fopen($path, 'w'); $ch

我需要我的服务器下载一个文件并将其写入服务器的文件系统。问题是我看到的所有PHP示例都将文件下载到服务器RAM中,然后写入文件


由于我处理的是大文件,我希望PHP从另一台服务器读取文件,并立即将读取的内容写入本地文件。

使用
curl
如下:

<?php
 $url  = 'http://www.example.com/a-large-file.zip';
 $path = '/path/to/a-large-file.zip';

 $fp = fopen($path, 'w');

 $ch = curl_init($url);
 curl_setopt($ch, CURLOPT_FILE, $fp);

 $data = curl_exec($ch);

 curl_close($ch);
 fclose($fp);
?>

像这样使用
curl

<?php
 $url  = 'http://www.example.com/a-large-file.zip';
 $path = '/path/to/a-large-file.zip';

 $fp = fopen($path, 'w');

 $ch = curl_init($url);
 curl_setopt($ch, CURLOPT_FILE, $fp);

 $data = curl_exec($ch);

 curl_close($ch);
 fclose($fp);
?>


文件放置内容('/path/to/file',文件获取内容('http://example.com/file'));?您尚未分享与您相关的示例,但在本网站上,我们提供了QA材料,说明如何不使用与总文件大小一样大的RAM缓冲区。另外,PHP手册中有很多函数和例子。我真想知道是什么阻碍了你@我在AmazonEC2服务器上使用windows,我们准备切换到Linux。不幸的是,我们可以连接到一些FTP服务器,但其他FTP服务器无法通过NAT服务器进行数据通道连接,并且不允许我们使用被动连接,因此对于这一个,我们使用下面的Kamil示例通过PHP/HTTP进行了连接。如果我完全控制了另一台服务器,我会安装一台FTP服务器,运行在EC2上的客户端可以连接到该服务器。
file\u put\u contents('/path/to/file',file\u get\u contents('http://example.com/file'));?您尚未分享与您相关的示例,但在本网站上,我们提供了QA材料,说明如何不使用与总文件大小一样大的RAM缓冲区。另外,PHP手册中有很多函数和例子。我真想知道是什么阻碍了你@我在AmazonEC2服务器上使用windows,我们准备切换到Linux。不幸的是,我们可以连接到一些FTP服务器,但其他FTP服务器无法通过NAT服务器进行数据通道连接,并且不允许我们使用被动连接,因此对于这一个,我们使用下面的Kamil示例通过PHP/HTTP进行了连接。如果我完全控制了另一台服务器,我会安装一个FTP服务器,运行在EC2上的客户端可以连接到。+1 for
CURLOPT_FILE
。我不知道你可以这么做。@RocketHazmat谢谢,我用它来处理大文件-在内存中下载数据会降低服务器性能和/或对
CURLOPT_文件
的内存要求不可接受+1。我不知道你可以这么做。@RocketHazmat谢谢,我用它来处理大文件-在内存中下载数据会降低服务器性能和/或有不可接受的内存需求