我一直在尝试将JSON编码数据发送到我的远程服务器进行存储,但我无法让它工作。我希望将JSON数据发送到我服务器上的现有文件,并将其附加到文件的末尾。
以下是我正在使用的内容:
$jsondata = json_encode($record);
$conn_id = ftp_connect("ftp://MY-USERNAME:MY-PASSWORD@MY-REMOTE-ADDRESS");
$temphandle = fopen('php://temp', 'r+');
fwrite($temphandle, $jsondata);
rewind($temphandle);
if(ftp_fput($conn_id, 'test.txt', $temphandle, FTP_ASCII)){
echo "Successfully uploaded data";
} else {
echo "There was a problem while uploading data";
};
ftp_close($conn_id);
fclose($temphandle);
我的if语句必须返回失败,因为我收到了问题错误。我相信我的FTP连接是成功的。我试图通过研究许多样本把它放在一起,我不确定我的问题在哪里。我在想我的ftp_fput
函数的一个参数是不正确的。我非常感谢能帮助您实现这一目标。
谢谢
答案 0 :(得分:0)
您并未真正向我们提供可用于识别问题的任何信息。
无论如何,您正在使用主动FTP模式。由于无处不在的防火墙和NAT,现在主动的FTP模式几乎不起作用。通常,您应该始终使用被动模式。
有关详细信息,请参阅我在FTP active and passive modes上的文章。
在PHP中,您可以在ftp_connect
之后调用ftp_pasv
(如果您使用ftp_login
,则切换到被动模式。
$conn_id = ftp_connect("ftp://MY-USERNAME:MY-PASSWORD@MY-REMOTE-ADDRESS");
// turn passive mode on
ftp_pasv($conn_id, true);