如何通过ftp将文件上传到服务器

时间:2013-08-09 12:29:48

标签: php ftp

我需要使用php中的ftp函数将csv文件上传到实时服务器

我的代码

 $local_filename = $_SERVER['DOCUMENT_ROOT'].'/feeds/ftp/xyz.csv';
 $remote_filename = date('Y-m-d_').'data.csv';

 $ftp_server = 'sftp.myhost.com';
 $ftp_user_name = 'username';
 $ftp_user_pass = 'password';
 $conn_id = ftp_connect($ftp_server,22);
 // login with username and password
 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
 if (ftp_put($conn_id, $remote_filename, $local_filename, FTP_ASCII)) {
unlink($local_filename);
$res = true;
 } else {
$res = false;
 }
 ftp_close($conn_id);

我得到了这个:

 Warning: ftp_login() expects parameter 1 to be resource, boolean given in C:\wamp\www\fstp\index.php on line 11

如何解决此错误?

2 个答案:

答案 0 :(得分:1)

看起来您正在尝试连接到SFTP服务器,而是使用ftp_ssl_connect

此外,您的代码不是很强大。在继续之前,您应该检查ftp_connectftp_ssl_connect的返回值。

答案 1 :(得分:1)

错误时,

ftp_connect()会返回FALSE。这就是您的错误消息表明第一个参数有boolean given in的原因。

检查以确保您的连接信息有效。将来,您还应该在尝试登录之前确保连接成功:

if($conn_id) {
    ...
}