php - PHP 5.3 FTP JSON 文件上传使用 ftp_put 不上传
问题描述
我有一个 json 文件,我想将它上传到不同服务器上的 ftp 帐户。我已经遵循了这个函数的所有代码,但我仍然上传失败!这是我的代码:
$con = ftp_connect('ftp.target-server.com');
$login = ftp_login($con, 'usr', 'pa55');
if (!$con || !$login) {
die('Connection attempt failed!');
}
$destination = 'my-target-file.json';
$source = 'my-source-file.json';
ftp_pasv($con, true) or die("Unable switch to passive mode"); //I have tried this option to force passive mode
$upload = ftp_put($con, $destination, $source, FTP_BINARY); //options: FTP_BINARY|FTP_ASCII and I have tried both
if (!$upload){
echo 'Upload failed!<br><br><br>';
}else{
echo "DONE!";
}
ftp_close($con);
尽管一切看起来都很好,但我总是失败。注意
- 我已经尝试通过 filezilla ftp 客户端进行访问,并且我设法手动将文件上传到目标目的地。
- 源服务器使用的是较旧的 PHP 5.3,但 ftp_put 函数看起来不错。
- 我也尝试过 my-target-file.txt 而不是 .json 并且上传失败。
- 我尝试了几个不同的共享托管服务器作为目标服务器,但没有运气。
如果有人可以提供建议,我将不胜感激!
我已经使用 error_get_last(); 检查了最后一个错误。并得到:Array ( [type] => 2 [message] => ftp_put(): Type set to I [file] => /hermes/......../public/ftp.php [line] = > 9)。我可以使用我正在使用的相同凭据通过 FTP 客户端 filezilla 将文件正常上传到目标服务器,但我不能使用 ftp_put() 因为它不起作用
解决方案
推荐阅读
- javascript - 在视图上反应原生半椭圆形
- python - for 循环中的参数
- java - Dockerized Spring Boot 应用程序不使用已安装的 Kubernetes ConfigMap (application.properties)
- javascript - 如何根据正则表达式中的条件搜索字符串
- typescript - 是否可以键入两个函数数组参数,使第二个参数的长度比第一个参数长一个?
- c++ - 我无法理解这段代码中的返回值
- c++ - 如何加速 OpenCV createMergeMertens 功能?
- coq - 如何判断依赖匹配两个 nat 相等
- firebase - 在显示警告的 Firebase 函数中,根据 GCLOUD_PROJECT 估计 Firebase 配置。初始化 firebase-admin 可能会失败 - 错误消息
- mysql - 通过交互表列表查看单个表