Bonjour a tous,
dans mon site les utilisateurs peuvent choisir un avatar lors de l'inscription en allant chercher l'avatar de leurs choix avec l'explorateur de leurs système et le fichier sera uploader sur le serveur, mais j'aimerais que si un utilisateur va chercher le fichier qu'il ait une restriction de tel sorte que le système il n'affiche que les format JPG, PNG, JPEG, GIF, et ignore les autre extensions et aussi par la même occasion tester avant l'envoie du fichier sa taille pour fixer
une limite. Alors, quelqu'un a une idée ? Bon, moi j'ai trouvé Uploadify ICI (un plugin de JQuery) mais il fait l'upload en Ajax alors que moi j'aimerai le faire normalement (un upload classique).
En tout cas merci d'avance pour vos futures réponses.

5 réponses


Grafikart
Réponse acceptée

Plus simple : un attribut accept dans l'input pour limiter l'utilisateur :
<input type="file" name="pic" id="pic" accept="image/gif, image/jpeg" />
Pour la taille aucune solution sans envoyer le fichier
Vérifie quand même les truc envoyé côté serveur

Bonjour,

<?php
    $ext_valid = array('image/jpg', 'image/gif', 'image/png', 'image/jpeg');

    $fichier = $_FILES'file'];

    // On vérifie que le type de l'image est autorisé.
    if(in_array($fichier'type'], $ext_valid)){

        // On vérifie la taille inférieure à 5 mo
        if($fichier'size']<=50000){

            // Le fichier passe

        }

    }

?>

Ce tutoriel devrait aider : lien.

wYm
Auteur

Non je veut le faire en javascript avant l'envoie du formulaire

Ah, désolé.

Pour l'extension je pense que ceci devrait fonctionner.

$(function(){
    input = $("input[type='file']").val();
        tableau = input.split('.');
    extension = tableau.reverse()[0];

    if(extension=='png' || extension=='jpg' || extension=='gif' || extension=='jpeg'){

    }
});

Mais en ce qui concerne la taille, je ne vois pas.

wYm
Auteur

Merci beaucoup pour ton aide, et ce que quelqu'un d'autre ne sait pas comment faire pour vérifier la taille avant d'envoyer le formulaire ? Parce que, comme je l'ai dit plus haut j'ai trouvé un plugin qui le fait (Uploadify) mais c'est pour l'upload en ajax et moi j'aimerai bien le faire en upload simple, merci d'avance :)