我已經做好了所有可能的連接來驗證FTP服務器是否正常工作,甚至可以使用file_put_contents()來上傳文件,但是PHP的FTP函數在嘗試時並不適用於我一個SSL連接。服務器被配置爲不允許非SSL的連接,因此不存在回退。沒關係,一切仍然有效,但我真的想使用ftp_ssl_connect()和ftp_login()來工作!嘗試SSL連接時PHP的FTP功能
見這個例子:
<?php
$username = 'someuser';
$password = 'SeCrEtPassWd';
$hostname = '192.168.1.10';
$filename = 'whatever.txt';
$string_data = 'This is the text content of the file. Pretty fancy eh?';
// USE file_put_contents W/ stream_context_create - WORKS !!!!
$url = 'ftps://' . $username . ':' . $password . '@' . $hostname . '/';
$opts = array('ftp' => array('overwrite' => true));
$context = stream_context_create($opts);
file_put_contents($url . $filename, $string_data, 0, $context);
// END的代碼工作--------------------------- --------
// USE PHP's FTP functions - DOES NOT WORK !!!
$conn_id = @ftp_ssl_connect($hostname);
$login_result = ftp_login($conn_id, $username, $password);
ftp_put($conn_id, $filename, $filename, FTP_ASCII);
ftp_close($conn_id);
// END的代碼不工作------------------------ ---
/*
****ERRORS PERTAINING TO THE PROBLEM ----------------------------****
Warning: ftp_login() [function.ftp-login]: SSL/TLS handshake failed in C:\xampp\htdocs\script-library\ftps.php on line 20
Warning: ftp_login() [function.ftp-login]: Proceed with negotiation. in C:\xampp\htdocs\script-library\ftps.php on line 20
*/
這是PHP中的錯誤嗎?我只是不明白爲什麼一切正常,但不是PHP的FTP功能。我的問題是,我真的需要能夠列出遠程服務器上的文件,因爲我不想覆蓋它們。我想將文件重命名爲不存在的文件。
phpseclib目前執行SFTP - 不是FTPS。 – neubert