Rechercher : dans
Par :

[PHP] Upload de fichier sur serveur

Dernière réponse le 15 jan 2008 à 15:22:52 sango69780, le 14 jan 2008 à 11:41:36 
 Signaler ce message aux modérateurs

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.

Configuration: Windows Vista
Internet Explorer 7.0

Meilleures réponses pour « [PHP] Upload de fichier sur serveur » dans :
[PHP] Upload de fichiers Voir Le langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
[Webmaster] Faire facilement un espace d'upload VoirPourquoi ? Il arrive que vous ayez besoin de mettre en place un petit espace de téléchargement (upload/download) pour stocker des fichiers sur votre site web. C'est en effet très pratique et peut dépanner quand vous n'avez pas de clé USB sous la...
Installation rapide de LAMP (Apache+MySql+php) sous Linux VoirLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
[PHP] Lister le contenu d'un répertoire VoirGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
Installation d'un serveur Web sous Linux (Apache, PHP et MySQL) VoirIntroduction Un serveur web est un logiciel permettant de rendre accessibles à de nombreux ordinateurs (les clients) des pages web stockées sur le disque. Cette fiche pratique explique comment installer le serveur web Apache sur un système de type...

1

Dakotacherif, le 14 jan 2008 à 11:46:48

Je suis désolé je viens de débuter en php , je ne peux t'aider sinon patiente

Répondre à Dakotacherif

2

le père, le 14 jan 2008 à 11:53:08

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

Répondre à le père

3

sango69780, le 14 jan 2008 à 12:04:39

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 !

Répondre à sango69780

4

sango69780, le 14 jan 2008 à 14:00:35

Personne ne sait? ^^

Répondre à sango69780

5

le père, le 14 jan 2008 à 14:41:47

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

Répondre à le père

6

sango69780, le 14 jan 2008 à 15:08:56

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.

Répondre à sango69780

7

le père, le 14 jan 2008 à 15:34:57
  • +1

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.

Répondre à le père

8

sango69780, le 14 jan 2008 à 16:23:15

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.

Répondre à sango69780

9

sango69780, le 15 jan 2008 à 11:38:21

Up !

Répondre à sango69780

10

le père, le 15 jan 2008 à 14:18:02

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 !

Répondre à le père

11

 sango69780, le 15 jan 2008 à 15:22:52

Ok je comprend donc mieux!
Je vais tester ceci de suite alors!

Merci de ton aide!

Cordialement.

Répondre à sango69780