已解决】PHP使用FTP发送文件报错425 Can’t open data connection for transfer of “/test.txt”
最近在对接农行支付,需要给前置机发送文件,用到了FTP,使用ftp客户端发送文件正常。
但是使用ftp_put发送文件的时候一直报错 425 Can’t open data connection for transfer of “/test.txt”,
网上查了好多资料,都在说防火墙的问题。但是我的ftp客户端可以正常使用,说明不是防火墙的问题。
所以就是被动模式的问题啦,ftp连接之后,ftp_pasv开启被动模式,搞定
附代码
private function send_ftp_file($host, $dest = 'test1.txt', $source = '../logs/test.txt')
{
$connection = ftp_connect($host, 21);
$login = ftp_login($connection, $this->ftp_user_name, $this->ftp_user_pass);
if (!$connection || !$login) {
return false;
// die('Connection attempt failed!');
}
ftp_pasv($connection, TRUE);
$upload = ftp_put($connection, $dest, $source, FTP_BINARY);
if (!$upload) {
return false;
}
ftp_close($connection);
return true;
}