提问人:l0gin 提问时间:7/2/2023 最后编辑:l0gin 更新时间:7/2/2023 访问量:66
远程 FTP 服务器上的 fopen 函数
The fopen function on a remote FTP server
问:
我需要将表单数据保存到远程ftp服务器。
如果我设置了本地路径,一切正常。
$filename = "/home/fvaeytm/test/uploads/user_dirs/$user_login".date("Ymdhis").".txt";
当我尝试像这样更改文件的保存路径时:
$filename = "ftp://pi:[email protected]/home/pi/test/" . $user_login . date("Ymdhis") . ".txt";
...在远程 ftp 服务器上创建了一个文件,但没有内容。
在初始阶段(大约 30 秒),服务器上的文件也无法打开。
$filename = "/home/fvaeytm/test/uploads/user_dirs/$user_login".date("Ymdhis").".txt";
$myfile = fopen($filename, "w");
fwrite($myfile, $Name."\n");
fwrite($myfile, $Number."\n");
fclose($myfile);
echo "<div id='success_page'>";
echo "<p>OK</p>";
echo "</div>";
}
我不知道问题出在哪里。我尝试更改文件权限,但没有更改。仅创建一个具有正确名称的空文件,但不创建任何内容。
我在两个不同的FTP服务器上尝试过,在两个服务器上都遇到了同样的问题。
php 中的“allow_url_fopen”设置为“开”
更新:我尝试在第三台服务器上保存,这次是使用 OVH,结果发现这里一切正常。
当我尝试在家中的 ftp 服务器上时,文件已创建,但没有内容。
一个FTP服务器设置在OpenWrt上,另一个FTP服务器设置在Debian(Raspberry)上 - 两者都存在相同的问题。
我只想补充一点,重定向到家庭服务器的域停放在 Cloudflare 上,但 ssl 已关闭。通过外部 IP 连接到客户端,我可以轻松地在我的家庭 FTP 服务器上创建和保存文件,所以我不知道为什么脚本有问题。
答:
0赞
l0gin
7/2/2023
#1
解决方案:除了用于 FTP 的标准端口 21 外,我还必须打开一系列端口:主路由器上的 40000-45000。
vsftpd.conf
pasv_min_port=40000
pasv_max_port=45000
上一个:如何打开递增的单个文件?
下一个:fopen() 无法打开文件
评论