php ftp upload没有发送xml文件

时间:2017-05-17 16:43:44

标签: php ftp

我有php代码,它从两个数据库表生成一个xml文件,并将xml文件保存到网站文件夹结构中的目录中。 xml文件正在正确保存。保存文件后,需要通过ftp将其发送到外部ftp服务器文件夹。

function send_ftp($source_file, $destination_file)
{
// set up basic connection
$ftp_server = 'svr02.xxxxxxx.com';
$connection_id = ftp_connect('svr02.xxxxxxx.com'); 

// login with username and password
$ftp_user_name = 'xxxxx';
$ftp_user_pass = 'xxxxx';
$login_result = ftp_login($connection_id, $ftp_user_name, $ftp_user_pass); 
ftp_pasv($connection_id, true);

// upload the file
$upload = ftp_put($connection_id, $destination_file, $source_file, 
FTP_ASCII); 

// close the FTP stream 
ftp_close($conn_id); 
}

连接似乎很好,我也可以在FileZilla中使用相同的连接和凭据来手动上传xml文件。

如何找出问题所在,我是否正确使用了ftp_put方法?

感谢您的帮助..

更新5/22/2017 我添加了一个函数来返回var_dump作为我可以在字符串或电子邮件等中使用的内容。

function var_dump_ret($mixed = null) {
  ob_start();
  var_dump($mixed);
  $content = ob_get_contents();
  ob_end_clean();
  return $content;
}

使用该代码,然后我可以获得var dump输出

$login_result = @ftp_login($connection_id, $ftp_user_name, $ftp_user_pass); 
$dump_content = var_dump_ret(var_dump($login_result));
send_to_dev('ftp login result', $dump_content);

登录结果的var_dump是' null'即使它应该是真的还是假的。我不认为我现在正在登录。

更新5/23/2017 每个建议我改为使用var_export函数来获取我的变量。 ftp_connect失败了;返回false,所以代码甚至没有打开ftp流。我知道ftp服务器不具备' ftp://'在它面前,我想不出别的什么。此ftp代码在GoDaddy上的共享主机上运行。你认为GoDaddy阻止它有问题吗?

1 个答案:

答案 0 :(得分:1)

为安全起见,Godaddy共享服务器托管阻止出站连接。这就是ftp_connect无法打开连接的原因。