Php 文件赢得';无法上传到ftp服务器

Php 文件赢得';无法上传到ftp服务器,php,ftp,Php,Ftp,我正试图通过脚本将一个文件从我的Web服务器上传到我的游戏服务器。问题是它找不到目录 完整目录是/174.34.132.106端口27015/tf/addons/sourcemod/configs/tf2items.wearms.txt 此路径不起作用,因此我询问了主机,他们坚持认为/tf/addons/sourcemod/configs/tf2items.warms.txt是正确的路径,但这也不起作用。游戏服务器运行在windows服务器上,我很确定web服务器运行在linux上。如果我的代码

我正试图通过脚本将一个文件从我的Web服务器上传到我的游戏服务器。问题是它找不到目录

完整目录是/174.34.132.106端口27015/tf/addons/sourcemod/configs/tf2items.wearms.txt

此路径不起作用,因此我询问了主机,他们坚持认为/tf/addons/sourcemod/configs/tf2items.warms.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); 

如果是Linux服务器,请确保对目录名使用正确的大小写


“tf/addons/sourcemod/configs”与“tf/addons/sourcemod/configs”不同

我注意到您连接的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_登录行之后添加相同的内容,以确保它实际登录

编辑要确保文件存在,请在ftp_put行上方尝试此操作

if(!file_exists($file)) echo "The local file does not exist";
编辑2在向下读取之后,它表示远程_文件不支持目录。您需要先使用


然后,对于远程_文件,只需使用
tf2items.warms.txt
。您仍然可以使用本地文件的文件路径。

如果您不确定目录,只需使用常规FTP客户端登录,看看是否可以导航并将确切的目录格式复制到脚本中。哪部分不起作用?导航到FTP程序中的目录,或将复制的目录使用到脚本中?如果无法导航到该目录,并且无法从开始所在的目录中向下搜索文件夹,则需要再次与主机对话。使用复制的目录,我将再次与主机对话,看看他们有什么要说的。如果脚本从linux FTP服务器上载到Windows FTP服务器,我是否需要对其执行任何不同的操作?没有,但我只是注意到端口有问题。我将创建它作为一个答案。添加端口仍然没有上载文件。以防万一,这有助于显示错误。警告:ftp_put()[function.ftp put]:系统找不到指定的文件。在第230行的/chroot/home/august5t/august5t.org/html/admin/pages/assets/viewwearms.php中,上载武器/tf2items.wearms.txt时出现问题。它正在查找我已检查过的本地文件。听起来好像找不到您的本地文件。我用一些代码更新了答案,以确保脚本能够看到您的本地文件。您拥有的端口是游戏服务器运行的端口,而不是ftp。我把它改回原来的端口21,但它仍然无法在web服务器上找到该文件。但是,它可以在本地服务器上找到该文件。它还连接到ftp。我更新了答案。ftp_put不支持远程文件的路径。您需要更改远程目录才能上载文件。我更新了新代码,但仍然收到“警告:ftp_put()[function.ftp put]:系统找不到指定的文件。不过,它正在查找目录,“/174.34.132.106 port 27015/tf/addons/sourcemod/configs”起作用!由于某些原因,我仍然无法上传文件。
ftp_chdir($conn_id, "tf/addons/sourcemod/configs/");