[PHP] Upload de fichier sur serveur

Fermé
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009 - 14 janv. 2008 à 11:41
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009 - 15 janv. 2008 à 15:22
Bonjours à tous,

J'ai créer en html un formulaire dans lequel l'utilisateur peut insérer une image.

J'aimerai que cette image soit uploader, dés son clique, sur mon ftp: mais c'est ici que je bloque!

Mon ftp est sur Ifrance, j'ai trouver ce code, qui normalement, permet d'effectuer ce que je veux, si je l'ai bien compris:


<FORM action="" method="POST" ENCTYPE="multipart/form-data">

<INPUT name="fichier" type="file" >
<INPUT name="valider" type="submit" value="valider">
</FORM>

<?

if(isset($_POST['valider']) && $_FILES['fichier']['tmp_name'] !="") envoi_ftp();

function envoi_ftp() {
$ftp_server=''WWW.YYY.ZZZ";
$ftp_user_name='MonLog';
$ftp_user_pass='MonPass';

echo " <br>Mise en place d'une connexion basique";
$conn_id = ftp_connect($ftp_server) or die("<br>Impossible de se connecter au serveur $ftp_server");

echo " <br>Identification avec un nom d'utilisateur et un mot de passe ";
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

echo " <br>Verification de la connexion ";
if ((!$conn_id) || (!$login_result))
{
echo "<br>La connexion FTP a echoue !<br>";
echo "<br>Tentative de connexion au serveur $ftp_server pour l'utilisateur $ftp_user_name ";
exit;
}
else {
echo "<br>Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name";
}

$fichier = $_FILES['fichier']['name'];
$taille = $_FILES['fichier']['size'];
$tmp = $_FILES['fichier']['tmp_name'];
$type = $_FILES['fichier']['type'];
$erreur = $_FILES['fichier']['error'];

echo "<br>Nom originel => $fichier ";
echo "<br>Taille => $taille ";
echo "<br>Adresse temporaire sur le serveur => $tmp ";
echo "<br>Type de fichier => $type ";
echo "<br>Code erreur => $erreur. ";

$fichier = $_FILES['fichier']['name'];
$source_file = $_FILES['fichier']['tmp_name'];
$destination_file = '/'.$fichier;

echo " <br>Chargement d'un fichier ";
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

echo " <br>Verification du status du chargement ";
if (!$upload)
{
echo "<br>Le chargement FTP a echoue";
}
else {
echo "<br>Chargement de $source_file vers $ftp_server en tant que $destination_file";
}
// Fermeture du flux FTP
ftp_close($conn_id);
}
?>







Voila, mais je ne sias pas quoi mettre pour la variable $ftp_server ...
Quelqu'un pourrait me donner un petit coup de main svp?
Ou bien quelqu'un connait-il une autre solution pour faire ce que j'envisage?

Envous remerciant.
Cordialement.
A voir également:

11 réponses

Tu n'as absolument pas besoin de ftp pour ça.
if(isset($_POST['valider']) && $_FILES['fichier']['tmp_name'] !="")
Quand cette condition est réalisée, le fichier à transférer est déjà téléchargé dans le serveur. Tu as juste à faire un move_uploaded_file(source, destination) pour ranger le fichier temporaire reçu dans un répertoire où tu pourras ensuite en faire ce que tu veux.
2
Bonjour

Il faut mettre le nom de ton serveur ftp !
Tu dois déjà le connaître, si tu as déjà téléchargé un fichier sur ton site avec avec Filezilla ou un autre client FTP. Sinon, c'est Ifrance qui peut te le dire
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
14 janv. 2008 à 12:04
Oui, le nom de mon serveur ftp (pour Ifrance), est bien celui-ci: MonNom.ifrance.com ...
Si oui, j'ai déjà essayer et ceci ne marche pas, donc c'est pour ceci que je pensais qu'il fallait entrer quelque chose d'autre!
Voici ce que ca me met:

Mise en place d'une connexion basique
Fatal error: Call to undefined function ftp_connect()

Voila voila !
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
14 janv. 2008 à 14:00
Personne ne sait? ^^
0

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

Posez votre question
Là c'est un autre problème...
Le message te dit en bon anglais que la fonction ftp_connect n'est pas définie
Si Ifrance ne te fournit pas cette fonction, ça ne peut pas marcher, que tu mettes un bon ou un mauvais nom de serveur. Il doit bien y avoir quelque part sur le site la liste des fonctions supportées ou interdites : trouve-la et vérifie.
Tu peux peut-être t'en sortie avec des simples fonctions de fichier 'normales', mais là encore ça dépend d'Ifrance
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
14 janv. 2008 à 15:08
Oui en effet ...

Mais alors, comment puis-je faire, si je veux que l'image selectionnée par l'utilisateur sur son pc, soit automatique hebergé pour pouvoir l'affichée dans une page web?

Merci.

Cordialement.
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
14 janv. 2008 à 16:23
Oui, j'avais déjà vu cette méthode, mais il me semble qu'elle ne correspond pas à mon besoin (ou peut-être, même sûrement, je n'ai pas exactement compris comment elle fonctionnait ! )

Si je fait:

<FORM action="" method="POST" ENCTYPE="multipart/form-data">

<INPUT name="fichier" type="file" >
<INPUT name="valider" type="submit" value="valider">
</FORM>


<?phh if(isset($_POST['valider']) && $_FILES['fichier']['tmp_name'] !="") ?>

A ce moment, ou en est le fichier (pour mon cas, ce sera une image)?

Ce que j'essaye de faire c'est qu'une fois que l'utilisateur appuie sur valide, l'image qu'il a choisit sur son pc soit transferer sur le serveur, comme ça, ensuite, je peut utiliser l'adresse pour l'afficher entre des balise [img] et [/img] .

Avec la méthode que tu me donnes, ceci est possible? Car comme je l'ai compris, elle stocke le fichier sur mon DD, et non sur un serveur, je me trompe?

Merci encore de ton attention.

Cordialement.
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
15 janv. 2008 à 11:38
up !
0
A ce moment, ou en est le fichier (pour mon cas, ce sera une image)?
Il est dans le serveur, avec le nom indiqué dans $_FILES['fichier']['tmp_name']. Mais il est temporaire, il sera détruit à la fin du script, d'où la nécessité de faire un move_uploaded_file.

elle stocke le fichier sur mon DD, et non sur un serveur, je me trompe ?
Oui tu te trompes. Le but de cette fonction est de déplacer le fichier temporaire qui vient d'être chargé vers un autre répertoire du serveur, pas de le renvoyer chez le client d'où il vient !
0
sango69780 Messages postés 44 Date d'inscription vendredi 15 septembre 2006 Statut Membre Dernière intervention 2 octobre 2009
15 janv. 2008 à 15:22
Ok je comprend donc mieux!
Je vais tester ceci de suite alors!

Merci de ton aide!

Cordialement.
0
Dakotacherif Messages postés 7 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 28 janvier 2008
14 janv. 2008 à 11:46
Je suis désolé je viens de débuter en php , je ne peux t'aider sinon patiente
-1