[PHP] Uploader sur un serveur FTP => problème

Résolu/Fermé
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 - 18 mars 2004 à 13:37
nonolenaufragé Messages postés 25 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 2 juin 2009 - 29 mai 2009 à 13:45
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

ibou52 Messages postés 81 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 24 août 2008 60
27 janv. 2008 à 14:49
Bonjour vig2,
dans le <form> mets y <FORM method="POST" ENCTYPE="multipart/form-data"> et tu essayes...
4
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
18 mars 2004 à 14:28
Coommence par effectuer les échappements d'usage
"C:\\mondossier\\fichier.txt"

Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
1
Utilisateur anonyme
18 mars 2004 à 14:29
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. :)
1
Utilisateur anonyme
18 mars 2004 à 14:18
Salut Thomas
Si tu me laisses un peu de temps, je vais regarder ca... :)

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678
18 mars 2004 à 18:47
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 :. ___|
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678
18 mars 2004 à 19:25
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 :. ___|
0
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+
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678
19 mars 2004 à 12:48
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 :. ___|
0
Utilisateur anonyme
19 mars 2004 à 13:04
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. :)
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678
19 mars 2004 à 13:17
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 :. ___|
0
Utilisateur anonyme
19 mars 2004 à 13:32
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. :)
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678 > Utilisateur anonyme
19 mars 2004 à 13:39
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 :. ___|
0
Utilisateur anonyme > Utilisateur anonyme
19 mars 2004 à 13:44
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. :)
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678 > Utilisateur anonyme
19 mars 2004 à 14:08
OK, merci Kala ! :)
  ___________________
  |__ .: Thom@s :. ___|
0
Ou aussi d'heberger le tout sur ta machine lol.
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678
19 mars 2004 à 17:03
:-)
  ___________________
  |__ .: Thom@s :. ___|
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678
12 mai 2004 à 22:24
Encore faut-il le pouvoir :-)
  ___________________
  |__ .: Thom@s :. ___|
0
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>
0
nonolenaufragé Messages postés 25 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 2 juin 2009 4
29 mai 2009 à 13:45
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...
0