IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Limiter le nombre de fichier à uploader


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut Limiter le nombre de fichier à uploader
    Bonjour à tous,

    J'ai un formulaire d'upload et j'aimerais limiter le nombre de fichier à uploader, alors je me tourne vers vous afin de m'aider à améliorer mon code.
    Merci.
    Voici le code d'upload :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
    	$filenamehttp = @$_FILES['files']['name']; // variable contenant le nom du fichier uploadé
    	$errorhttp = @$_FILES['files']['error']; // Variable pour la gestion des erreurs
    	$sizehttp = @$_FILES['files']['size']; // Variable contenant les paramètres de la taille du fichier
    	$tmpfilehttp = @$_FILES['files']['tmp_name']; // Variable contenant le fichier dans un dossier temporaire
    	// Ecécution et traitements des fichiers
    	foreach ($filenamehttp as $key => $name){     
    	    if ($errorhttp[$key] == 4){
    	        $message[] = "Veuillez s&eacute;lectionner un ou plusieurs fichiers";
    			continue; // Passer fichier si aucune erreur trouvée
    	    }	       
    	    if ($errorhttp[$key] == 0){	           
    	        if ($sizehttp[$key] > $ftp['taille_max']){ // test de la taille du ou des fichier(s)
    	            $message[] = "$name est trop grand!.";
    	            continue; // Si fichier trop grand afficher message d'erreur
    	        }
    		elseif(!in_array(pathinfo($name, PATHINFO_EXTENSION), $ftp['formats_valides'])){ // // test de l'extension du ou des fichier(s)
    			$message[] = "$name n'est pas un fichier PDF";
    			continue; // Si format du fichier invalid afficher message d'erreur
    	        }
    		else{ // Aucune erreur, on uploade le ou les fichier(s)
    	            if(@ftp_put($connect,$ftp['destination'].$name, $tmpfilehttp[$key],$ftp['mode'])){
    	            	$count++; // Nombre de fichiers envoyés avec succès
    	            }
    	        }
    	    }
    	}
    }
    ?>

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Points : 1 101
    Points
    1 101
    Par défaut
    Tu dois le faire du coté HTML de ne laissé l'utilisateur choisir que le nombre exigé.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Comment est-ce que je dois faire?

    Le code du formulaire :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <!--Formulaire d'envoi multiple-->
    <form action="" method="post" enctype="multipart/form-data">
    	<input type="file" name="files[]" multiple="multiple" accept="pdf/*"><br />
    	<input type="submit" id="upload" value="Envoyer">
    </form>

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Dans ce cas là tu ne peux pas le faire en HTML (ça peut se gérer en javascript éventuellement mais ça va nécessiter un peu de développement).

    En php par contre c'est simple (exemple avec un maximum de 4 fichiers) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (isset($_FILES['name'][4])) {
           echo 'Trop de fichier uploadés (max 4)';
    }

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    L'intention est bonne mais c'est pas tout à fait ça, car $_FILES['name'] n'existe pas.
    Si le champ du formulaire se nomme "files" on aura les résultats dans $_FILES['files']['name'] et donc pour ne pas dépasser 4 fichiers on pourra faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(is_array($_FILES['files']['name']) && count($_FILES['files']['name']) > 4)
    {
        echo 'plus de quatre fichiers sont téléchargés';
    }

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup à tous problème résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Limitation au nombre de fichiers ouverts
    Par ram-0000 dans le forum Windows
    Réponses: 0
    Dernier message: 13/11/2007, 11h43
  2. Limite du nombre de fichiers dans un dossier sous Fedora4 ?
    Par arkofab dans le forum RedHat / CentOS / Fedora
    Réponses: 1
    Dernier message: 15/08/2007, 00h58
  3. Réponses: 3
    Dernier message: 27/02/2007, 20h35
  4. Réponses: 4
    Dernier message: 15/08/2006, 13h30
  5. [MFC] Limitation du nombre de fichiers...
    Par chronos dans le forum MFC
    Réponses: 5
    Dernier message: 02/06/2004, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo