使用curl和php从ftp下载文件

Rya*_*yan 23 php curl

我正在尝试使用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);
Run Code Online (Sandbox Code Playgroud)

我可以得到一个文件列表,但就此而言

小智 21

我的猜测是你的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);
Run Code Online (Sandbox Code Playgroud)


jim*_*myi 4

  • 将 CURLOPT_URL 设置为文件的完整路径。
  • 删除 CURLOPT_FTPLISTONLY 行。
  • 在curl_exec之前添加这些行:

    $file = fopen("filename_to_save_to", "w");
    curl_setopt($curl, CURLOPT_FILE, $file);
    
    Run Code Online (Sandbox Code Playgroud)