Ошибка PHP ftp_put

Я загружаю файл XML через FTP:

$ftp = "ftp"; $username = "username"; $pwd = "password"; $filename = $_FILES[$xyz][$abc]; $tmp = $_FILES['file']['tmp_name']; $destination = "/Content/EnquiryXML "; $connect = ftp_connect($ftp)or die("Unable to connect to host"); ftp_login($connect,$username,$pwd)or die("Authorization Failed"); echo "Connected!<br/>"; if(!$filename) { echo"Please select a file"; } else { ftp_put($connect,$destination.'/'.$filename,$tmp,FTP_ASCII)or die("Unable to upload"); echo"File successfully uploaded to FTP"; } 

Я хочу отправить XML-файл, созданный с помощью DOMDocument на FTP-сервер, но я не могу.

ftp_put возвращает false.

Наиболее типичной причиной проблем с ftp_put является то, что PHP по умолчанию работает в активном режиме. И в 99% случаях нужно переключиться в пассивный режим, чтобы сделать передачу работоспособной. Используйте функцию ftp_pasv .

 $connect = ftp_connect($ftp) or die("Unable to connect to host"); ftp_login($connect, $username, $pwd) or die("Authorization Failed"); // turn passive mode on ftp_pasv($connect, true); 

Смотрите также:

  • PHP ftp_put не работает с «Warning: ftp_put (): команда PORT успешно выполнена"
  • моя статья о активных и пассивных режимах FTP-подключения .

Это сработало:

 // connect and login to FTP server $ftp_server = "host"; $ftp_username = "username"; $ftp_userpass = "password"; $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server"); $login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass); $file ="$abc"; // upload file if (ftp_put($ftp_conn, "/$abc" , $file, FTP_ASCII)){ echo "Successfully uploaded $file."; } else { echo "Error uploading $file"; } // close connection ftp_close($ftp_conn);