Se connecter avec
S'enregistrer | Connectez-vous

[RESOLU] PHP - Problème d'envoi de fichier sur FTP

Dernière réponse : dans Programmation

Salut tout le monde, j'ai un petit soucis.
J'aimerai pouvoir envoyer des images .jpg sur mon ftp et pour ca j'ai fait un script. La base de ce script a été prise sur php.net et j'ai rajouté 2-3 trucs. Seulement ca ne marche pas. La connexion au FTP se fait bien mais la fonction ftp_put() n'envoie pas l'image. Si quelqu'un peux m'aider...
Merci d'avance !

Voici le code :
  1. <?
  2. // Mise en place d'une connexion basique
  3. $conn_id = ftp_connect($ftp_server);
  4.  
  5. // Identification avec un nom d'utilisateur et un mot de passe
  6. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  7.  
  8. // Vérification de la connexion
  9. if ((!$conn_id) || (!$login_result))
  10. {
  11. echo "La connexion FTP a échoué !";
  12. echo "Tentative de connexion au serveur $ftp_server pour l'utilisateur $ftp_user_name";
  13. exit;
  14. }
  15. else
  16. {
  17. echo "Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name";
  18. }
  19.  
  20. //changement du dossier courant
  21. ftp_chdir($conn_id, $dossier_photos);
  22.  
  23. if (isset ($_POST['fichier']))
  24. {
  25. if ($_POST['fichier'] != '')
  26. {
  27. $source_file = $_POST['fichier'];
  28. $destination_file = $_POST['nom_fichier'] . '.jpg';
  29. // Chargement d'un fichier
  30. $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
  31.  
  32. // Vérification du status du chargement
  33. if (!$upload)
  34. {
  35. echo "Le chargement FTP a échoué!";
  36. }
  37. else
  38. {
  39. echo "Chargement de $source_file vers $ftp_server en tant que $destination_file";
  40. }
  41. }
  42. }
  43. ?>
  44. <h2>Ajouter une photo</h2>
  45. <form method="post">
  46. Nom du fichier <input type="text" name="nom_fichier" size="20">
  47.  
  48. Fichier <input type="file" name="fichier">
  49.  
  50. <input type="submit" value="OK">
  51. </form>
  52. <h3>Liste des fichiers</h3>
  53. <?
  54. $liste = ftp_nlist($conn_id, '.');
  55.  
  56. //affichage du contenu du dossier
  57. echo '<p class="droite">Dossier courant : ' . ftp_pwd($conn_id) . '</p>';
  58. echo '<pre>';
  59. print_r ($liste);
  60. echo '</pre>';
  61.  
  62. ftp_close($conn_id); // fermeture du flux FTP
  63. ?>
Lassé par la pub ? Créez un compte

Pourquoi tu n'utilises pas la fonction "upload" via un formulaire tout simplement ? Passer par le ftp, c'est logiquement plus rapide en raison du protocole, mais je ne trouve pas çà vraiment fiable (j'ai jamais réussi à utiliser ce protocole via php) ni même simple.

Et très crade sur le serveur si çà merde ou si la connection se ferme ! Avec l'upload, tes fichiers se stockent obligatoirement dans un dossier temporaire qui est vidé, donc pas de soucis à ce niveau là... Voilà, ce n'est qu'un conseil qui vaut ce qu'il vaut ;-)

Bon courage quand même !

Désolé, j'avais pas vu ton code ! :-)

Tu utilises bien un formulaire, mais en effet comme çà, çà ne risque pas de fonctionner :-)

voilà ce qu'il faut mettre à la première ligne du formulaire :

< form enctype="multipart/form-data" method="POST" name = "form" action="fichier.php" >


Si tu ne mets pas enctype="multipart/form-data", peu importe la méthode utilisée en php, çà ne fonctionnera pas, j'ai déjà été confronté à ce problème donc vala, essaie et normalement çà devrait être bon ;-)

@+

Hoxman

Ca marche pas ... j'ai changé la balise de début du formulaire en
  1. <form enctype="multipart/form-data" method="POST">

mais ca ne marche toujours pas.
Maintenant au lieu de me dire que l'upload a échoué. Il ne m'affiche plus rien. Mais par contre aucun fichier ne se trouve sur le FTP.
:-S
Lassé par la pub ? Créez un compte
  • Contenus similaires :
Tags :
Tom's guide dans le monde