begin process at 2012 05 27 21:22:02
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > FONCTION D'UPLOAD D'UN FICHIER AVEC FILTRE SUR LE TYPE (EXTENSION) DE FICHIER

FONCTION D'UPLOAD D'UN FICHIER AVEC FILTRE SUR LE TYPE (EXTENSION) DE FICHIER


 Information sur la source

Note :
4,67 / 10 - par 6 personnes
4,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaires Classé sous :moveuploadedfile, upload, envoi, fichier Niveau :Débutant Date de création :04/10/2005 Vu :12 730

Auteur : amenophis1er

Ecrire un message privé
Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note

 Description

Ce bout de code permet de gérer l'upload d'un fichier et permet de filtrer les fichiers à charger suivant leurs extensions.

Source

  • <?php
  • /**********************************************************************************
  • * FONCTION D'UPLOAD D'UN FICHIER
  • ***********************************************************************************
  • * Vous devez obligatoirement nommer le champ INPUT de type FILE <<fichier>>
  • *************************************************************************************
  • * $uploaddir STRING VARIABLE le dossier de destination finale du fichier téléchargé
  • * $prefix STRING VARIABLE comment préfixé le fichier chargé
  • * $adresseFichierFinal STRING VARIABLE GLOBALE l'adresse relative du fichier sur le serveur
  • * @access PUBLIC $adresseFichierFinal
  • * @author Amen AMOUZOU, amouzou_amen@yahoo.fr
  • * @TODO Filtre sur les fichiers accepté; on pourra refuser ainsi certain type de fichier
  • **********************************************************************************/
  • function upload($uploaddir,$prefix = ""){
  • GLOBAL $adresseFichierFinal, $nomFichierFinal;
  • Switch($_FILES['fichier']['error']){
  • case 0:
  • //echo "Le téléchargement est correct vers le dossier temporaire du serveur";
  • $adresseFichierFinal = $uploaddir.$prefix.$_FILES['fichier']['name']; //On pourra récupérer cette variable et le stocker dans une BD
  • $nomFichierFinal = $prefix.$_FILES['fichier']['name']; //idem
  • //Vérifions que le dossier $uploaddir existe sinon on le crée
  • if (!is_dir($uploaddir))
  • {
  • if (!@mkdir($uploaddir))
  • {
  • echo "Erreur lors de la création du dossier 'docs'";
  • }
  • }
  • //Permettons l'accès complet sur ce dossier: lecture, écriture et suppression
  • @chmod($uploaddir,0777);
  • //Déplaçons le fichier dans le dossier $uploaddir
  • if (move_uploaded_file($_FILES['fichier']['tmp_name'], $adresseFichierFinal)) {
  • // echo " et le fichier a été correctement déplacé ensuite vers le dossier <b>$uploaddir</b>. Adresse complète : $adresseFichierFinal\n";
  • //print('<PRE>');
  • // print_r($_FILES);
  • // print('</PRE>');
  • } else {
  • echo "<br>\nAttaque par upload potentielle. Voici plus d'informations :\n<PRE>";
  • print_r($_FILES);
  • print("</PRE>");
  • }
  • break;
  • case 1: echo "Le fichier exède la taille autorisée dans le fichier php.ini du serveur";
  • break;
  • case 2: echo "Le fichier exède la taille MAX_FILE_SIZE spécifié dans le formulaire";
  • break;
  • case 3: echo "Le fichier n'a été que partiellement téléchargé";
  • break;
  • case 4:
  • echo "Aucun fichier n'a été téléchargé.";
  • break;
  • }
  • }
  • /**********************************************
  • * Fin de la fonction
  • **********************************************/
  • ?>
<?php

/**********************************************************************************
      * FONCTION D'UPLOAD D'UN FICHIER
      ***********************************************************************************
	  * Vous devez obligatoirement nommer le champ INPUT  de type FILE <<fichier>>
	  *************************************************************************************
      * $uploaddir STRING VARIABLE le dossier de destination finale du fichier téléchargé
      * $prefix STRING VARIABLE comment préfixé le fichier chargé
      * $adresseFichierFinal STRING VARIABLE GLOBALE l'adresse relative du fichier sur le serveur
      * @access PUBLIC $adresseFichierFinal
      * @author Amen AMOUZOU, amouzou_amen@yahoo.fr
      * @TODO Filtre sur les fichiers accepté; on pourra refuser ainsi certain type de fichier
      **********************************************************************************/
             
      function upload($uploaddir,$prefix = ""){
      GLOBAL $adresseFichierFinal, $nomFichierFinal;
          Switch($_FILES['fichier']['error']){
          case 0: 
            //echo "Le téléchargement est correct vers le dossier temporaire du serveur";
            $adresseFichierFinal = $uploaddir.$prefix.$_FILES['fichier']['name']; //On pourra récupérer cette variable et le stocker dans une BD
			$nomFichierFinal     = $prefix.$_FILES['fichier']['name']; //idem
            //Vérifions que le dossier $uploaddir existe sinon on le crée
            if (!is_dir($uploaddir))
                {
                           if (!@mkdir($uploaddir))
                           {
                                           echo "Erreur lors de la création du dossier 'docs'";
                           }
                }
          
          //Permettons l'accès complet sur ce dossier: lecture, écriture et suppression
          @chmod($uploaddir,0777);
                   
          //Déplaçons le fichier dans le dossier $uploaddir
            if (move_uploaded_file($_FILES['fichier']['tmp_name'], $adresseFichierFinal)) {
                   // echo " et le fichier a été correctement déplacé ensuite vers le dossier <b>$uploaddir</b>. Adresse complète : $adresseFichierFinal\n";
                   //print('<PRE>');
                   // print_r($_FILES);
                   // print('</PRE>');
            } else {
                    echo "<br>\nAttaque par upload potentielle. Voici plus d'informations :\n<PRE>";
                    print_r($_FILES);
                    print("</PRE>");
            }
          break;
          case 1: echo "Le fichier exède la taille autorisée dans le fichier php.ini du serveur";
          break;
          case 2: echo "Le fichier exède la taille MAX_FILE_SIZE spécifié dans le formulaire";
          break;
          case 3: echo "Le fichier n'a été que partiellement téléchargé";
          break;
          case 4: 
            echo "Aucun fichier n'a été téléchargé.";
          break;
          }
      }
     /**********************************************
     * Fin de la fonction
     **********************************************/
   
?>

 Conclusion

//Un exemple de l'appel de la fonction
if ((isset($_POST["envoi"])) && ($_POST["envoi"] == "form1")) {    
      $prefix =  time()."_"; //Nous pouvons décider de préfixer le nom du fichier par le timestamp. Pour eviter les écrasement de fichjier de même nom
     $dossierDestination = "../images/categories/";
      upload($dossierDestination,$prefix);
      }


 Sources de la même categorie

Source avec Zip Source avec une capture VALIDATEUR DE FORMULAIRE par Reldan
Source avec Zip SUIVI SERVICE CLIENT PHP par hige52
Source avec Zip POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM par mtrix000
Source avec Zip Source avec une capture SELECTEUR DE NOTE par Reldan
Source avec Zip Source avec une capture ESPACE MEMBRE , AVEC CASE OPTIONNEL , SANS MYSQL par sartoz

 Sources en rapport avec celle ci

UPLOADER DES FICHIER DANSUN DOSSIER, SÉCURISÉ AVEC MOT DE PA... par raizzo
Source avec Zip Source avec une capture A-ANNONCES VERSION PHP 5 par cod57
GESTION FTP (CLASSE) par shevabam
Source avec Zip Source avec une capture UPLOADER DE FICHIER PHP - AVEC GESTION DES FICHIERS par DiabloBros
Source avec Zip Source avec une capture UTILISATION DU COMPOSANT MULTIPOWUPLOAD par crazygogo

Commentaires et avis

Commentaire de coucou747 le 04/10/2005 21:05:12 administrateur CS

salut

t'as pas de vérification de type de fichier, comment tu peux savoir si ton fichier est ou non dangereux ?

Commentaire de manouille le 05/10/2005 09:33:35

Le titre de la source avait l'air interessant, mais très franchement, j'ai rien compris a ta source...
En gros tu fait un dossier d'upload si y'en a pas tu lui donne les droits 777 et ensuite tu claques le fichier dedans....

Moi je dis : Tout ça pour ça ...

Commentaire de massacr le 05/10/2005 13:28:04

Euh, tu trouves pas que c'est un peu bete de marquer ca "Attaque par upload potentielle. Voici plus d'informations" ? Etant donné que si un hacker qui attaque par upload, c'est lui qui aura le message ? Si ton script détectait vraiment les attaques, tu pourrais envoyer ce message au webmaster, mais marquer un message qui peut se déclencher lors d'une erreur banale de transfert, et de toute facon à la mauvaise personne, c'est con...

Commentaire de GiUsTiNo le 07/10/2005 20:06:50

Non vous avez pas rien compris, c'est "uopload" et pas "upload", c'est une nouvelle technique :p
Bon ok, je sors et je me tais :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Barre de progression pour un upload de fichier [ par SeanyJ ] Bonjour, Alors voila je vais vous expliquer mon problème. J'ai créer un formulaire en PHP permettant l'envoi de gros fichier sur mon serveur (jusqu'a upload [ par Homeros ] Bonjour, j'ai crée un upload des fichiers, le pbm et que je ne veux faire l'upload que pour les extensions suivant  (doc, pdf, rtf), est ce que vous p upload non renseignée [ par winnie39 ] Bonjour à Tous,je me penche depuis peux à l'upload de fichier couplé à la base de données.Tous c'est parfaitement passé, alors je voudrais l' améliore Upload facultative [ par winnie39 ] Bonjour à Tous,je me penche depuis peux à l'upload de fichier couplé à la base de données.Tous c'est parfaitement passé, alors je voudrais l' améliore Aide Code Upload PHP [ par MaitreLgTbD ] Bonjour, C'est encore moi je sollicite votre aide, actuellement en stage mon projet sollicite un bout de code de upload tous fichiers confondu (la plu Probleme Code Upload et insertion Mysql [ par MaitreLgTbD ] MaitreLgTbD    Bonjour,C'est encore moije sollicite votre aide, actuellement en stage mon projet sollicite un bout de code de upload tous fichiers con update et upload [ par winnie39 ] Bonjour à tous,Voila, a force de recherche et de poste (notamment ici),j' ai pratiquement terminé le code que je désire.Voici en quoi il consiste :Je upload d'un fichier sql et le mettre ds la base [ par ludovicanceaux ] Salut à tous, J'ai fais des recherches depuis cette aprem mais je ne trouve rien!!!!! je suis ss easyphp avec windows "vista évidemment pour arranger probleme pour l'upload de video [ par mickael56100 ] bonjour tout le monde je poste un message sur le forum car je rencontre un problème pour uploader des vidéos.Je ne sais pas si c'est un problème d'acc Barre de progression upload fichier SIMPLE [ par pukekey ] Bonjour, Voila vous allez surement me dire que je suis un boulet mais je me lance : J'ai chercher pendant des heures un moyen de faire une barre de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales