繁体   English   中英

PHP如何使用基于TLS的隐式FTP连接到FTP

[英]PHP how to connect to FTP using Implicit FTP over TLS

显然,FTP的本机FTP功能不支持基于TLS的隐式FTP

我使用Curl尝试了此操作,但不起作用:

$ftp_server = 'data.example.com/file.csv'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $ftp_server);
curl_setopt($ch, CURLOPT_USERPWD,'abcde'.':'.'123456');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY);
curl_setopt($ch, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
$file = fopen('local_file.csv', "w+");
curl_setopt($ch, CURLOPT_FILE, $file);

$data = curl_exec($ch);
$error_no = curl_errno($ch);

curl_close($ch);

如果尝试在URL中没有文件名的情况下,显示IIS欢迎页面时,似乎可以访问服务器。 如果我尝试使用该文件,则会收到404错误。 我知道该文件是准确的,因为我可以通过Filezilla进行访问。

谢谢

您的网址应包含该方案,例如:

$ftp_server = 'ftps://data.example.com/file.csv'; 

CURLOPT_URL解释

如果给定的URL缺少方案名称(例如“ http://”或“ ftp://”等),则libcurl将基于主机进行猜测。 如果最外面的子域名与DICT,FTP,IMAP,LDAP,POP3或SMTP匹配,则将使用该协议,否则将使用HTTP。

您遇到了IIS欢迎页面和404错误,因为您正在发出http请求,而不是通过ftps连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM