Recherche rapide
     
Espace Membres
il y'a actuellement 32370 membres
 
Pseudo  
Password  
inscriptions
 
Cours php/Tutoriels
  1/  Apprendre les bases de PHP
  1a/  Divers en PHP, les erreurs, les variables etc...
  2/  Les variables
  3/  Les variables d'environnements
  4/  Les conditions
  5/  Les boucles
  6/  Les cookies
  7/  Travailler sur les dates
  8/  Les tableaux array()
  9/  Travailler avec les fichiers
  10/  Traiter les chaines de caractères
  11/  Récuperer et verifier les données d'un formulaire
  12/  Envoyer des mails
  13/  Les pseudo-frames
  14/  Débuter avec mysql
  15/  Fonctions update et delete de mysql
  16/  Comprendre et utiliser la clause where
  17/  Liste de quelques fonctions mysql
  18/  Mysql par la pratique, construire un livre d'or
  19/  Construire un mini moteur ou annuaire
  20/  Afficher sur plusieurs pages
  21/  La construction de votre forum
  22/  Faire son script de sondage (vote)
  23/  Sessions , mise en pratique
  24/  Sessions , récapitulatif
  25/  Les expressions régulières
  26/  Coder son ANTI-FLOOD
  27/  Utiliser et créer ses fonctions
  28/  Upload et transfert de fichiers
 
 
 
Liens
  Les cours pour bien débuter PHP
Upload de fichiers avec PHP n° 28


 
Edité le 25-01-2007 , si vous trouvez des fautes d'orthographes ou de codes , merci de me le signaler.

Longtemps demandé, je vais vous expliquer ,pas à pas, le moyen d'envoyer des fichiers , images ou autres , vers votre site.
Dans ce cours, je vais vous proposer 2 solutions , la version courrante avec la fonction "move_uploaded_file()" et les fonctions FTP que propose PHP
 
 
Move_uploaded_file().

 

Cette fonction vous permet d'envoyer vos images ,ou pages, par un formulaire , en parcourant votre disque dur et en les téléchargeant vers un dossier de votre site web.

ATTENTION, votre répertoire de déstination doit être en chmod 777

Le code du formulaire pour le choix et valider l'envoi.

<html>
<head>
<title>Upload de fichiers</title>
</head>
<body>

<form enctype="multipart/form-data" action="upload.php" method="post">
Choisir et envoyer: <input name="webfile" type="file" />
<input type="submit" value="Valider" />
</body>
</html>

Rien de très compliqué , il s'agit du code html d'un formulaire , remarquez quand même ce détail dans le "form"
enctype="multipart/form-data"

Ce champ doit être renseigné pour l'upload de fichiers , si vous oubliez celui ci , vous ne pourrez pas obtenir le résultat souhaité.



Passons maintenant au code php

<?php
// Script upload.php

// Entrez ici le repertoire de destination
$ma_destination = '/home/sites/mon_compte/www/upload/' . $_FILES['webfile']['name'] ;

// La fonction en action
move_uploaded_file( $_FILES['webfile']['tmp_name'] , $ma_destination );
?>

Voilà , nous avons créé un script simple pour l'utilisation de la fonction "move_uploaded_file" de PHP , lorsque vous aurez exécuté celui-ci , regardez dans votre répertoire de destination , si tout s'est bien passé , vous verrez votre fichier.

Il est clair qu'un tel script ne peu fonctionner sans risque , il n'est doté d'aucune protection ni de vérification , il vous faudra donc le modifier afin de le rendre plus stable.

 
 
 

Les variables passées lors de la validation.

  
Variables Désciptions
$_FILES['webfile']['name'] Le nom du fichier envoyé
$_FILES['webfile']['type'] Le type de fichier ( image/jpeg , text/html ... )
$_FILES['webfile']['tmp_name'] Le répertoire et nom temporaire
$_FILES['webfile']['error'] Le code erreur
$_FILES['webfile']['size'] La taille du fichier
 
Le transfert par FTP

Nous allons regarder de plus près comment utiliser une autre méthode de transfert.
PHP met à votre disposition des fonctions FTP pour transférer des images , fichiers ... vers votre site.
Nous reprenons le formulaire ci-dessus et nous allons créer un script de transfert FTP.


<?php
// Script upload.php
// avec fonctions FTP de PHP


// entrez le nom de votre serveur ftp distant
$ftp_server = 'ftp.votre_compte';
$ftp_login = 'votre login';
$ftp_password = '******';
$ftp_destination = 'www/upload/'; // choisissez le repertoire que vous désirez

// on se connecte au serveur
$connexion = ftp_connect($ftp_server) or die ('erreur de connexion');

$login_result = ftp_login ($connexion, $ftp_login , $ftp_password );

// nous allons vérifier que la connexion c'est bien passée avant de poursuivre

if( (!$connexion) || ( !$login_result ) ){
  echo 'la connexion a &eacute;chou&eacute;e <br />';
}
else{
 echo 'Nous sommes connect&eacute;s , continuons <br />';

// nous transférons maintenant le fichier
$destination = $ftp_destination . $_FILES['webfile']['name'] ;
$fichier_local = $_FILES['webfile']['tmp_name'] ;

// Vous avez le choix entre 2 types de transfert
// FTP_BINARY ou FTP_ASCII

$put = ftp_put( $connexion , $destination , $fichier_local , FTP_BINARY );
if ( $put == true ) {
 echo 'Le fichier ' . $_FILES['webfile']['name'] . ' a &eacute;t&eacute; transf&eacute;r&eacute; avec succ&egrave;s';
} else {
 echo 'Erreur lors de l\'envoi de ' . $_FILES['webfile']['name'] ;
}

// nous refermons la connexion
ftp_close($connexion);
}
?>

Voilà , si vous avez suivi les 2 exemples , vous savez maintenant comment "uploader" vos fichiers.
Je tiens quand même à vous préciser qu'il faut sécuriser votre code pour ne pas avoir de mauvaises surprises , par exemple:

- Les extensions doivent être choisies avant d'effectuer le transfert :

list( $Prev , $Ext ) = split( '.' , $_FILES['webfile']['name'] );
$AUTORIS = array( 'gif' , 'jpeg' , 'png' , 'pdf' );

if( in_array( $EXT , $AUOTORIS ) ){
// le fichier porte bien une des extensions que vous acceptez
}

- Vous pouvez ajouter une taille maximum pour les fichiers , il suffit d'ajouter ceci dans votre formulaire :

<input type="hidden" name="MAX_FILE_SIZE" value="30000" />

 
 

 

Bonne prog
e - (webmaster )

 
 

 
 
Rubrique installer
  1°/  Apache et PHP
  2°/  Mysql sur votre PC (version tar.gz)
  3°/  Mysql sur votre PC (version rpm)
 
Newsletter

 
Votez !!
Pas de votes ni suggestions actuellement
 
 
 
Débuter Linux
 1°/   Introduction
 2°/   Installation ( 1ere partie )
 3°/   Installation ( 2ème partie )
 4°/   Connexion / documentation / Synthaxe
 5°/   Les différentes commandes sous linux
 6°/   Installer / Désinstaller / Lister les applications
 7°/   Manipulation des chaines de caractères
 
    © Copyright 2005 - az-php.com - tous droits réservés , reproduction interdite . Hébergé par 1hebergeur.com [ mentions légales & copyright ]