使用 curl 和 php 从 ftp 下载文件

2022-08-30 16:42:10

我正在尝试使用 curl 和 php 从 ftp 服务器下载文件,但我找不到任何文档来提供帮助

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"ftp://$_FTP[server]");
curl_setopt($curl, CURLOPT_FTPLISTONLY, 1);
curl_setopt($curl, CURLOPT_USERPWD, "$_FTP[username]:$_FTP[password]");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec ($curl);

我可以得到一个文件列表,但仅此而已


答案 1

我的猜测是,您的URL指向目录,而不是文件。您需要将CURLOPT_URL文件的完整 URL。此外,如果要下载文件,则可能需要将其保存在某个位置。

工作实例:

$curl = curl_init();
$file = fopen("ls-lR.gz", 'w');
curl_setopt($curl, CURLOPT_URL, "ftp://ftp.sunet.se/ls-lR.gz"); #input
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FILE, $file); #output
curl_setopt($curl, CURLOPT_USERPWD, "$_FTP[username]:$_FTP[password]");
curl_exec($curl);
curl_close($curl);
fclose($file);

答案 2
  • 将CURLOPT_URL设置为文件的完整路径。
  • 删除CURLOPT_FTPLISTONLY行。
  • 在curl_exec之前添加以下行:

    $file = fopen("filename_to_save_to", "w");
    curl_setopt($curl, CURLOPT_FILE, $file);
    

推荐