Vérification d'un fichier uploadé

Utilisateur anonyme -  
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

dans un de mes formulaires, j'ai un input type file
(<input type="file" id="upImage" name="upImage" />)
où j'aimerais accepter uniquement des images, (parmis jpg,png et gif), vérifier qu'elles ne soient pas trop grande niveau résolution et niveau taille.

Alors sous PHP j'arrive à vérifier tout cela, mon autre souhait par contre, c'est de le vérifier directement après que l'utilisateur ait choisi son image, et du coup mettre un message d'erreur qui empêcherait aussi de faire "submit".

Je me demande quel est cet évènement, et je me dis que ce n'est faisable que sous javascript. Quelles seraient vos idées?
A voir également:

2 réponses

MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Hello,
Voici un script trouvé sur le net, une petite recherche et tu aurais trouvés !

<form method="POST" action="#" enctype="multipart/form-data">
     <!-- On limite le fichier à 100Ko -->
     <input type="hidden" name="MAX_FILE_SIZE" value="100000">
     Fichier : <input type="file" name="avatar">
     <input type="submit" name="envoyer" value="Envoyer le fichier">
</form>
<?php
if(isset($_POST['envoyer']))
{

$dossier = 'upload/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.'); 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}
}
?>
0
Utilisateur anonyme
 
Je pense que je me suis mal exprimé.
Là ce que tu m'as montré c'est un moyen de faire des vérifications après que l'utilisateur ait appuyé sur le bouton "submit" et quand il y a effectivement un $_POST... moi ce que je veux, c'est faire des vérifications avant que l'utilisateur valide son formulaire, c'est à dire juste après qu'il ait clické sur "parcourir" et ait sélectionné son image..
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Tu tries ce que tu veux, tout est dedans !
0