Maison >développement back-end >Problème PHP >Que faire si le téléchargement de php ftp_put échoue

Que faire si le téléchargement de php ftp_put échoue

藏色散人
藏色散人original
2020-08-22 09:36:413473parcourir

Le téléchargement de php ftp_put échoue car le serveur est derrière un pare-feu. La solution est d'activer le mode passif FTP, avec un code tel que "ftp_put($conn,"target.rar","local.rar",FTP_BINARY). ,0 );".

Que faire si le téléchargement de php ftp_put échoue

Recommandé : "Tutoriel vidéo PHP"

Le client est derrière le pare-feu et PHP utilise FTP pour télécharger fichiers lorsque ftp_put Failure

<?php
$conn = ftp_connect("ftp.bacysoft.cn") or die("Could not connect");
ftp_login($conn,"test","test1234");
ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0);
ftp_close($conn);
echo "done";
?>

Description du code :

Ce code utilise le protocole FTP en arrière-plan via le serveur PHP pour télécharger le fichier local "local.rar" sur le serveur de fichiers FTP distant et enregistrez-le sous "target.rar". Autrement dit, le serveur PHP agit comme un client FTP pour télécharger des fichiers sur le serveur FTP...

Une erreur s'est produite après l'exécution du code ci-dessus. Le message d'erreur est le suivant :

Warning: ftp_put() [function.ftp-put]: Opening BINARY mode data connection for target.rar. in E:\wwwroot\bacysoft\wwwroot\test\temp.php on line 4
 
Fatal error: Maximum execution time of 60 seconds exceeded in E:\wwwroot\bacysoft\wwwroot\test\temp.php on line 5
La raison de l'erreur :

Le serveur est généralement placé derrière le pare-feu, donc si le programme client FTP doit traverser le pare-feu, il doit activer le mode passif. Sinon, il n'y aura pas de réponse. exécuter n'importe quelle commande ftp jusqu'à ce qu'une erreur fatale de "délai d'exécution maximum" se produise, provoquant la fin du programme...

ftp_pasv($conn, true);

Solution : Activez le mode passif FTP, le code correct est le suivant :

<?php
$conn = ftp_connect("ftp.bacysoft.cn") or die("Could not connect");
ftp_login($conn,"test","test1234");
ftp_pasv($conn, true);
ftp_put($conn,"target.rar","local.rar",FTP_BINARY,0);
ftp_close($conn);
echo "done";
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn