[PHP] Uploader sur un serveur FTP => problème [Résolu/Fermé]

Signaler
Messages postés
3435
Date d'inscription
mardi 4 mars 2003
Statut
Modérateur
Dernière intervention
28 septembre 2019
-
nonolenaufragé
Messages postés
24
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
2 juin 2009
-
Salut à tous !

Je voudrais, en PHP, uploader automatiquement un fichier sur mon serveur FTP.
Voilà mon code :
$connect_id = ftp_connect('ftp.monserveur.com') or die ('Connexion FTP impossible !');

if (!@ftp_login($connect_id, 'login', 'password')) {
    echo 'Impossible de se logguer sur le serveur FTP !';
    }

if ($chemin) {
		if (!ftp_put($connect_id, "/html_docs/fichier.txt", "C:\mondossier\fichier.txt", FTP_ASCII)) {
			echo '<p class="rouge">!ERREUR! Les fichiers n\'ont pas pu être uploadés sur le serveur FTP !</p>';
		}
		else {
			echo '<p class="rouge">Les fichiers ont bien été uploadés sur le serveur FTP !</p>';
		}
		ftp_close($connect_id);
	}

Et voilà l'erreur qui est retournée par PHP :
Warning: ftp_put(): 3 is not a valid FTP Buffer resource in #### on line 55
Warning: ftp_close(): 3 is not a valid FTP Buffer resource in #### on line 61

Quelqu'un saurait-il où est mon erreur, svp, car là je ne sais plus quoi faire ! :-)

Merci beaucoup d'avance ! :)

A+ :)
  ___________________
  |__ .: Thom@s :. ___|

11 réponses

Messages postés
81
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
24 août 2008
60
Bonjour vig2,
dans le <form> mets y <FORM method="POST" ENCTYPE="multipart/form-data"> et tu essayes...
4
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 86803 internautes nous ont dit merci ce mois-ci

Messages postés
3661
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
862
Coommence par effectuer les échappements d'usage
"C:\\mondossier\\fichier.txt"

Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.

Tes fichiers se transferent ou pas ? Ton script est correct. Ca ressemble plus à un probleme de configuration du php.ini.

Peut etre que le serveur est en mode debugg. Dans ce cas, mets des @ avant la fonction ftp_put et ftp_close.

J'ai testé ton script et cela fonctionne (j'ai juste viré le if ($chemin) )

Kalamit,
Parle à ma culasse, mon carter est malade. :)

Salut Thomas
Si tu me laisses un peu de temps, je vais regarder ca... :)

Kalamit,
Parle à ma culasse, mon carter est malade. :)
Messages postés
3435
Date d'inscription
mardi 4 mars 2003
Statut
Modérateur
Dernière intervention
28 septembre 2019
646
Salut à vous ! :-)

Merci de vous pencher sur mon problème ! :)

Pour Jisisv, j'ai fait comme tu as dit, merci :-)
Pour Kala, vala ce qui se passe :
J'ai fait comme tu as dit, j'ai mis des @ devant ftp_put et ftp_close et j'ai viré temporairement le if ($chemin) (mais avec le if le résultat est le même, de toute façon).
Et là, je n'ai plus l'erreur PHP (3 is not a valid FTP Buffer resource) mais par contre ftp_put() retourne FALSE et les fichiers ne se transfèrent pas...

Donc, je me suis posé quelques questions :
1) Le 1er paramètre de ftp_put est correct, non ?

2) Et le 2e paramètre est bien l'adresse du fichier distant ?
(par ex, est-ce que c'est correct ?:
"/home/html_docs/monlogin/dossier/fichier.txt")

3) Et le 3e paramètre est bien le fichier local ?
(par ex, est-ce que c'est correct ?:
"C:\\mondossier\\monfichier.txt")

4) Faut-il un \ d'échappement pour les / ?

5) Peut-on spécifier le mode (passif ou actif) ? (ou est-ce seulement pour les logiciels clients FTP ?)

6) Quels droits doit avoir le dossier distant dans lequel on transfère le fichier ? (fait-il impérativement un CHMOD 777 ?)

7) Pourquoi ça marche pas ? ;-)))

Merci beaucoup d'avance ! :)
  ___________________
  |__ .: Thom@s :. ___|
Messages postés
3435
Date d'inscription
mardi 4 mars 2003
Statut
Modérateur
Dernière intervention
28 septembre 2019
646
Resalut à tous !

Alors voilà:
J'ai mis maintenant directement
ftp_put($connect_id, "/html_docs/monlogin/fichier.txt", "C:\\mondossier\\fichier.txt", FTP_BINARY);

Et je me reçois une erreur PHP:
Warning: ftp_put(): Unable to access C:\mondossier\fichier.txt  in /html_docs/monlogin/monfichierphp.php on line 45

Quelqu'un aurait-il une idée, svp ? Parce que là je n'en peux plus ! J'ai tout essayé !... svp...

Merci beaucoup d'avance ! :)

A+ :)
  ___________________
  |__ .: Thom@s :. ___|
Salut !

Je voulais juste savoir, ca te sers à uploader un fichier d'un visiteur ? (par exemple, envoyer une image, un fichier divers pour le downloader comme pour des sites de script ou autre)
Sinon je connais pas assez PHP pour t'aider, désolé.
A+
Thom@s
Messages postés
3435
Date d'inscription
mardi 4 mars 2003
Statut
Modérateur
Dernière intervention
28 septembre 2019
646
Salut John !

Ce script ne servisait qu'à moi, dans la partie "administration" de mon site. Elle servisait à uploader les logiciels que vais, j'espère, écrire, et autres fichiers :-)
Voila :-)

Sinon, est-ce quelqu'un aurait une idée pour mon problème, svp ?
Merci beaucoup d'avance ! :)

A+ :-)
  ___________________
  |__ .: Thom@s :. ___|

Salut Thomas.

Je crois que tu n'as pas saisi exactement comment fonctionnait le ftp.
Tu ne peux pas uploader un fichier présent sur TON disque dur par cette methode. Avec cette bibliotheque de fonction le client FTP se trouve sur ton serveur web et non sur ta machine perso.

En fait, ce que tu fais, c'est un put d'un fichier présent sur ton serveur web sur un serveur FTP.

Kalamit,
Parle à ma culasse, mon carter est malade. :)
Thom@s
Messages postés
3435
Date d'inscription
mardi 4 mars 2003
Statut
Modérateur
Dernière intervention
28 septembre 2019
646
Salut Kala ! :-)

Merci pour ta réponse :-)
J'ai pas bien compris ce que tu as dit...

En fait, ce que j'essaie de faire, c'est d'uplaoder un fichier qui est sur MON disque dur sur le serveur Web de mon hébergeur.
Et je le fais par l'intermédiaire de cette page PHP que j'exécute en temps que visiteur :-)
(je n'ai pas de logiciel serveur Web chez moi...)

Et ce n'est pas possible ? N'est-ce pas à ça que sert la fonction FTP de PHP ?

Merci :-)
A+ :)
  ___________________
  |__ .: Thom@s :. ___|
Utilisateur anonyme
Bah non ! Pas possible avec ftp !
Le FTP est une application Client/Server. Jusque la, ok.

Lorsque tu execute cette page php, ou est ton client ftp et ou est ton server ?
Autrement dit, qui execute la fonction php ? Est ce ton browser ou le server php ?
Tu suis mon raisonement ?

En fait, le client c'est le server php, pas ton pc à la maison ! C'est pour ca que cela ne fonctionne pas !

Kalamit,
Parle à ma culasse, mon carter est malade. :)
Thom@s
Messages postés
3435
Date d'inscription
mardi 4 mars 2003
Statut
Modérateur
Dernière intervention
28 septembre 2019
646 > Utilisateur anonyme
Resalut Kala !

Merci pour ta réponse :-) et ta patience :)

Donc en fait, ça marcherait si le fichier à transférer était sur la même machine que le serveur PHP; ou bien le serveur PHP sur mon ordi.

C'est ça ? Est-ce que j'ai bien compris ? :-)

Merci Kala ! :)
A+ :)
  ___________________
  |__ .: Thom@s :. ___|
Utilisateur anonyme > Utilisateur anonyme
Oui, si tu veux...
Pour résumer, les fonctions ftp de php te permette de transiter des fichiers entre un serveur FTP et ton espace web chez ton hebergeur.

Une solution à ton probleme serait de mettre un serveur FTP sur ta machine perso et de faire des get sur le serveur web.

Kalamit,
Parle à ma culasse, mon carter est malade. :)
Thom@s
Messages postés
3435
Date d'inscription
mardi 4 mars 2003
Statut
Modérateur
Dernière intervention
28 septembre 2019
646 > Utilisateur anonyme
OK, merci Kala ! :)
  ___________________
  |__ .: Thom@s :. ___|
Ou aussi d'heberger le tout sur ta machine lol.
Thom@s
Messages postés
3435
Date d'inscription
mardi 4 mars 2003
Statut
Modérateur
Dernière intervention
28 septembre 2019
646
:-)
  ___________________
  |__ .: Thom@s :. ___|
Thom@s
Messages postés
3435
Date d'inscription
mardi 4 mars 2003
Statut
Modérateur
Dernière intervention
28 septembre 2019
646
Encore faut-il le pouvoir :-)
  ___________________
  |__ .: Thom@s :. ___|
Bonjour,
j ai un probleme avec un formulaire d'upload de fichier.
J ai beau enlever les elements les plus compliques de mon script, je trouve toujours le meme probleme.
J ai simplifier au maximum mon probleme et si jamais quelqu'un sait pourquoi ca ne marche pas, ca serait sympa de m'aider.
Le resultat de ce script est systematiquement le meme, il m'envoie toujours "ya pas de code" , que j'inserer un fichier ou non...
Merci de votre aide:


<body>
<form id="form1" name="form1" method="post" action="">
<table>
<p>
<tr><td></td>
<td>
<INPUT type='hidden' name='MAX_FILE_SIZE' VALUE=2048>
<input type='file' name='photo' size='10'><br>
</td></tr>
</p>
<tr>
<td>
<input type="submit" name="Submit" value="Submit" />
</td>
</tr>
</table>
</form>
<?php

if(empty($_FILES["photo"]["name"]))
{
echo "ya pas de code";
}
else{
echo "ya un code";
}

?>
</body>
Messages postés
24
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
2 juin 2009
4
Tu trouveras ton bonheur là-dedans ^^:

https://openclassrooms.com/fr/

Y'a des tutos pas à pas très complets sur xhtml et php.
Ou alors je te passe un code à moi qui marche...