使用php上传FTP文件

时间:2013-04-23 12:51:56

标签: php ftp

我需要自动从本地计算机上传文件到远程服务器。我在这里找到了以下代码:

<?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";

我在这里做错了什么?此外,如果文件位于本地服务器上的映射驱动器上,是否可以执行此操作? 感谢。

1 个答案:

答案 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