我需要自动从本地计算机上传文件到远程服务器。我在这里找到了以下代码:
<?php
require_once('ftp.php');
// set up basic connection
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "successfully uploaded $file\n";
exit;
} else {
echo "There was a problem while uploading $file\n";
exit;
}
// close the connection
ftp_close($conn_id);
?>
ftp.php
是我的文件,带有ftp身份验证信息。连接有效,但我收到以下错误:
There was a problem while uploading C:/xampp/htdocs/testbcos/accounting/checkslastmonth.csv
编辑:我不确定这是否有所不同,但这里是我的$ remote_file和我的$文件:
$file = "C:/xampp/htdocs/testbcos/accounting/checkslastmonth.csv";//tobe uploaded
$remote_file = "/home/bookcell/public_html/testbcos/accounting/checkslastmonth3.csv";
我在这里做错了什么?此外,如果文件位于本地服务器上的映射驱动器上,是否可以执行此操作? 感谢。
答案 0 :(得分:1)
首先:尝试设置被动模式。如果你坐在防火墙后面,你需要它。 (可能是这种情况)
ftp_pasv($conn_id, true); // after ftp_login
其次,你必须先改为dir:
ftp_chdir($conn_id, '/home/bookcell/public_html/testbcos/accounting/');
ftp_put($conn_id, 'checkslastmonth3.csv', $file, FTP_ASCII);
如果您想知道实际发生了什么,请尝试使用error_get_last()或。获取错误消息 $php_errormsg