我正在尝试通过脚本将文件从我的网络服务器上传到我的游戏服务器。问题是它无法找到目录。
完整目录是/174.34.132.106端口27015 / tf / addons / sourcemod / configs / tf2items.weapons.txt
这条路径没有用,所以我向主持人询问了它,并且他们坚持认为/tf/addons/sourcemod/configs/tf2items.weapons.txt是正确的路径,但这也不起作用。游戏服务器在Windows服务器上运行,我很确定Web服务器是在linux上运行的。我的代码是错误的,我是否必须用%20替换目录中的空格。提前致谢!
$ftp_server="174.34.132.106";
$ftp_user_name="Username";
$ftp_user_pass="Password";
$remote_file = "tf2items.weapons.txt";
$file = "weapons/tf2items.weapons.txt";//tobe uploaded
if(!file_exists($file)) echo "The local file does not exist";
$conn_id = ftp_connect($ftp_server) or die('Unable to create the connection');
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_chdir($conn_id, "174.34.132.106 port 27015/tf/addons/sourcemod/configs/");
echo ftp_pwd($conn_id);
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
echo "successfully uploaded $file\n";
exit;
} else {
echo "There was a problem while uploading $file\n";
exit;
}
// close the connection
ftp_close($conn_id);
答案 0 :(得分:0)
如果这是Linux服务器,请确保对目录名称使用正确的大小写。
“tf / addons / sourcemod / configs”与“TF / addons / sourcemod / configs”不同;
答案 1 :(得分:0)
我注意到您连接的FTP服务器使用的是非标准端口,因此可能无法建立连接。您需要在ftp_connect中指定端口,如下所示:
$ftp_server="174.34.132.106";
$ftp_port = "27015";
$ftp_user_name="username";
$ftp_user_pass="password";
$remote_file = "tf/addons/sourcemod/configs/tf2items.weapons.txt";
$file = "weapons/tf2items.weapons.txt";//tobe uploaded
// set up basic connection
$conn_id = ftp_connect($ftp_server,$ftp_port) or die('Unable to create the connection');
如果脚本无法建立连接,则die()将停止该脚本。您可以在ftp_login行之后添加相同的内容,以确保它实际登录。
修改要确保您的文件存在,请在ftp_put行上方尝试此操作。
if(!file_exists($file)) echo "The local file does not exist";
编辑2 在阅读ftp_put后,它说remote_file不支持目录。您需要先使用ftp_chdir。
ftp_chdir($conn_id, "tf/addons/sourcemod/configs/");
然后对于remote_file,只使用tf2items.weapons.txt
。您仍然可以将文件路径用于本地文件。