L'opération ftp_put de PHP a échoué
P粉884548619
P粉884548619 2023-08-24 22:05:13
0
2
727
<p>Je télécharge le fichier XML via FTP : </p> <pre class="brush:php;toolbar:false;">$ftp = "ftp"; $nom d'utilisateur = "nom d'utilisateur" ; $pwd = "Mot de passe" ; $nom de fichier = $_FILES[$xyz][$abc]; $tmp = $_FILES['fichier']['tmp_name']; $destination = "/Content/EnquiryXML "; $connect = ftp_connect($ftp)or die("Impossible de se connecter à l'hôte"); ftp_login($connect,$username,$pwd)or die("Échec de l'autorisation"); echo "Connecté !<br/>" ; si(!$nom de fichier) { echo "Veuillez sélectionner un fichier" ; } autre { ftp_put($connect,$destination.'/'.$filename,$tmp,FTP_ASCII)or die("Impossible de télécharger"); echo "Fichier téléchargé avec succès sur FTP" ; }</pré> <p>Je souhaite envoyer un fichier XML créé à l'aide de <code>DOMDocument</code> à un serveur FTP, mais je n'y parviens pas. </p> <p><code>ftp_put</code> renvoie false. </p>
P粉884548619
P粉884548619

répondre à tous(2)
P粉225961749

Cela a fonctionné :

// 连接并登录到FTP服务器
$ftp_server = "主机";
$ftp_username = "用户名";
$ftp_userpass = "密码";
$ftp_conn = ftp_connect($ftp_server) or die("无法连接到 $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
$file ="$abc";

// 上传文件
if (ftp_put($ftp_conn, "/$abc" , $file, FTP_ASCII)){
    echo "成功上传文件 $file。";
} else {
    echo "上传文件 $file 出错";
}

// 关闭连接
ftp_close($ftp_conn);
P粉056618053

mène à ftp_put(或任何其他传输命令,如ftp_getftp_nlistftp_rawlistftp_mlsd)出现问题的最常见原因是PHP默认为主动模式。在99%的情况下,需要切换到被动模式才能使传输正常工作。使用ftp_pasv fonction .

$connect = ftp_connect($ftp) or die("无法连接到主机");
ftp_login($connect, $username, $pwd) or die("授权失败");
// 打开被动模式
ftp_pasv($connect, true) or die("无法切换到被动模式");
Appelé après

ftp_pasv必须在ftp_login. L'appeler avant n'a aucun effet.

Voir aussi :


De plus, si votre serveur FTP signale une mauvaise adresse IP en répondant aux commandes PASV (ce qui est assez courant si le serveur est derrière un pare-feu/NAT), vous devrez peut-être la résoudre en utilisant :

ftp_set_option($connect, FTP_USEPASVADDRESS, false);

Voir PHP FTP + Serveur FTP passif derrière NAT.

Bien que dans ce cas, la bonne solution soit de réparer le serveur.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal