Vous êtes ici Codes PHP et MySQL > Formulaires > Upload multiple ou simple des fichiers

 

Upload multiple ou simple des fichiers

il n'a jamais été aussi facile de transferer des fichiers sur votre serveur.
/*
EXPLICATION ET REGLES D'UTILISATION DE CETTE FONCTION
**************
$num_uploads = Nombre de champs d'upload à afficher et à gerer simultanément.
**************
$file_types_array = Un tableau regroupant toutes les extentions autorisées. par defaut, seuls les fichiers ('jpg','gif','png','mp3','bmp','swf','flv','mpeg','jpeg') sont autorisés.

*************
$max_file_size = poids maximun de chaque fichier à uploader. pour toute valeur autre que numerique aura comme consequense de fixer cette variable à sa valeur par defaut de 1Mo .

*************

$upload_dir = Chemin menant au repertoire de destination du fichier à uploader, Rassurez vous qu'il se termine par un slash (/)

*************

Cette fonction affiche le formulaire et gere les données soumises par elle-même, pour uploader un ou plusieurs fichiers vous n'avez qu'à modifier les parametres d'entrée selon vos convenances, elle se charge du reste.

CAS PARTICULIER:
pour le transfert d'un seul fichier avec les parametres par defaut vous avez juste a appeler la fonction comme ceci:

*//*EXEMPLE D'UTILISATION
FILE_UPLOADER($num_of_uploads=5, $file_types_array=array('fla','swf','flv','mpeg','avi'), $max_file_size=1048576, $upload_dir="media/");
dans ce cas precis, penser à créer le repertoire "media", qui doit etre un sous-dossier du dossier contenant le fichier upload.php
/// dans le cas contraire, indiquer le chemin exacte à suivre jusqu'au dossier "media"
*/
 
tex73
[2] sources en PHP voir
Code vu 32111 fois
Enregistré le 05 Juil 2008
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Upload multiple ou simple des fichiers
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Upload multiple ou simple des fichiers                    */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts425-PHP.htm              */
/* Auteur         : tex73                                                     */
/* Date édition   : 05 Juil 2008                                              */
/*                                                                            */
/******************************************************************************/


function FILE_UPLOADER($num_of_uploads=1$file_types_array=array('jpg',
                                                                  'gif',
                                                                  'png',
                                                                  'mp3',
                                                                  'bmp',
                                                                  'swf',
                                                                  'flv',
                                                                  'mpeg',
                                                                  'jpeg'),
                                      $max_file_size=1048576$upload_dir=""){
  if(!is_numeric($max_file_size)){
    $max_file_size 1048576;
  }
  $max_file_size_Mo $max_file_size/1048576;
  if(!isset($_POST['submitted'])){
    $form '<form action="'.$PHP_SELF.
'" method="post" enctype="multipart/form-data">
    Telechargement de fichier:<input type="hidden" name="submitted"' .
' value="TRUE" id="'.time().'">
                              <input type="hidden" name="MAX_FILE_SIZE" value="'
.$max_file_size.'">';
    for($x=0;$x<$num_of_uploads;$x++){
      $form .= 
'<input type="file" name="file[]"><font color="red">*</font><br /><br />';
    }
    $form .= 
'<input type="submit" value="Telecharger"><br /><font color="red">*</font>
               Type(s) de fichiers autorisés: ';
    $y=count($file_types_array);
  for($x=0;$x<$y;$x++){
      if($x<$y-1){
        $form .= $file_types_array[$x].', ';
      }else{
        $form .= $file_types_array[$x].'.';
      }
    }
    $form .= '</form>';
    echo($form);
  }else{
    foreach($_FILES['file']['error'] as $key => $value){
      if($_FILES['file']['name'][$key]!=""){
        if($value==UPLOAD_ERR_OK){
          $origfilename $_FILES['file']['name'][$key];
          $filename explode('.'$_FILES['file']['name'][$key]);
          $filenameext $filename[count($filename)-1];
          unset($filename[count($filename)-1]);
          $filename implode('.'$filename);
          $filename substr($filename015).'.'.$filenameext;
          $file_ext_allow FALSE;
//par mesure de securité on suppose l'extenion du fichier fausse
      //verifions si notre fichier fait partie des types autorisés
      if(false !== ($iClef array_search($filenameext$file_types_array))) {
 $file_ext_allow TRUE;
}
          if($file_ext_allow){
            if($_FILES['file']['size'][$key]<$max_file_size){
              if(move_uploaded_file($_FILES['file']['tmp_name'][$key], 
$upload_dir.$filename)){
                echo('Transfert de fichier effectué avec succès. -
                      <a href="'.$upload_dir.$filename.'" target="_blank">'.
$filename.'</a><br />');
                      
/*evidemment plutot que d'afficher ici le lien vers le fichier uploader
                      sur le serveur vous pouvez proceder à une redirection vers
 une autre page*/
              }else{
 echo('Une erreur est survenue lors du transfert de '.'<strong>'.$origfilename.
'</strong><br />');
              }
            }else{
 echo('La taille du fichier '.''.$origfilename.''.' excède les '.
$max_file_size_Mo.' Mo autorisé(s)');
            }
          }else{
 echo('Le fichier '.''.$origfilename.''.
'  a une extension invalide, ERREUR DE TRANSFERT !<br />');
          }
        }else{
          echo('Une erreur est survenue lors du transfert de '.'<strong>'.
$origfilename.'</strong>');
        }
      }
    }
  }
}

?>

 

Fonctions du code

: Crée un tableau - (PHP 4, PHP 5)
: - (PHP 4, PHP 5)
: Détermine si une variable est affectée - (PHP 4, PHP 5)
: Retourne le timestamp UNIX actuel - (PHP 4, PHP 5)
: Compte le nombre d'éléments d'un tableau ou le nombre de propriétés...
: Affiche une chaîne de caractères - (PHP 4, PHP 5)
: Coupe une chaîne en segments - (PHP 4, PHP 5)
: Détruit une variable - (PHP 4, PHP 5)
: Rassemble les éléments d'un tableau en une chaîne - (PHP 4, PHP 5)
: Retourne un segment de chaîne - (PHP 4, PHP 5)
: Recherche dans un tableau la clé associée à une valeur - (PHP 4 >= 4.0.5, PHP 5)
: Déplace un fichier téléchargé - (PHP 4 >= 4.0.3, PHP 5)
Commentaires
je testé le script en localhost il ne fonctionne pas question
 
je confirme qu'il nyà pas de bug connus à ce jours. Cette source fonctionne a merveil chez moi, et je l'ai poster egalement sur d'autres sites de partages de sources, les membres l'ont testé et à ce jour personne ne c'est plaint de quelque disfonctionnement que ce soit.
je te donne rais un piste à ton pb en te demandant de virifier que le chemin de ton repertoire de destination est exacte, que tu possede les droits d'ecriture sur ce repertoire(chmod) et enfin si la fonction a étésujette à des modifications rassures toi de n'avoir pas commis d'erreur de frappes. merci
 
merci pour votre explication
le script fonctionne correctement
 
j'ai essayé cette fonction mais malheuresement ca pas marché, jl'ai utilisé telle qu'elle est sur le site , et j'ai eu cette erreur


Code:
Warning: Invalid argument supplied for foreach() in c:\program files\easyphp\www\test\upload.php on line 24
 
j'ai essayé cette fonction mais malheuresement ca pas marché, jl'ai utilisé telle qu'elle est sur le site , et j'ai eu cette erreur


Code:
Warning: Invalid argument supplied for foreach() in c:\program files\easyphp\www\test\upload.php on line 24
 
Bonjour,
Joli travail, chez moi cela fonctionne du premier coup.

Une petite question, avez vous déjà ajouté une petite fonction qui vérifie la taille d'une image (par exemple ne pas dépasser 400*400)

Patrick
 
tu peux utiliser la fonction getimagesize pour récupérer la taille d'une image :
http://www.phpsources.org/function.getimagesize.php
 
Salut.
je vous conseille aussi de tester une solution d'upload multiple en flash et ajax. ça s'appelle NAS Uploader et ça se trouve ici -http://www.nasuploader.com et ça marche bien aussi!
@+
 
C'est pas possible, il a pas été testé avant d'être posté, ce bout de code ?
 
CHIHAOUI :
le code source dans le zip ne correspond pas a celle dans cette page, donc testé plutot celle de fichier zip ( le télécharger en haut de la page ) :D
 
Je viens de tester le script et ce script fonctionne très bien.

Pour le faire fonctionner, suffit simplement d'appeler la fonction

FILE_UPLOADER();
 
Excellentissime !!! Merci beaucoup. J'avais déjà fait un formulaire maison d'upload, mais pas aussi propre et efficace que celui-ci.
 
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Formulaires

 
 

PHP

 
 
 
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
        Publicité