Vérification du mime-type, de l'extension et de la taille
Résolu
max30_3775
Messages postés
178
Date d'inscription
Statut
Membre
Dernière intervention
-
max30_3775 Messages postés 178 Date d'inscription Statut Membre Dernière intervention -
max30_3775 Messages postés 178 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je sollicite votre aide pour vérifier l'extension et la taille d'une image lorsqu'un utilisateur ajoute cette dernière, histoire d'éviter de mauvaises surprises dans l'avenir:
Voici ma fonction savephoto:
Je sollicite votre aide pour vérifier l'extension et la taille d'une image lorsqu'un utilisateur ajoute cette dernière, histoire d'éviter de mauvaises surprises dans l'avenir:
Voici ma fonction savephoto:
function savePhoto($id_annonce,$file,$location){ if(empty($file)){ echo "<br> ERREUR : Aucune image n'est envoyées pour l'upload"; var_dump($_FILES); return false; } $error=''; //mime-type $mime_types = array('png' => 'image/png', 'jpe' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'jpg' => 'image/jpeg', 'gif' => 'image/gif'); //taille $taille_maxi= 3Mo; $photo = $file['name']; $photo_tmp = $file['tmp_name']; if(isset($mime_types)){ if ($photo>$taille_maxi) {$error = 'Le fichier est trop gros...';} if(move_uploaded_file($photo_tmp,$location.$photo)){ return insertPhoto($id_annonce,$location.$photo); } else{ $error = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...'; } }
Configuration: Windows / Chrome 97.0.4692.71
A voir également:
- Vérification du mime-type, de l'extension et de la taille
- Comment réduire la taille d'un fichier - Guide
- Changer extension fichier - Guide
- Extension .bin - Guide
- Extension dat - Guide
- Verificateur de lien - Guide
6 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
$photo_taille = $file['size'];
Bonjour,
function savePhoto($id_annonce,$file,$location){ if(empty($file)){ echo "<br> ERREUR : Aucune image n'est envoyées pour l'upload"; return false; //pas d'image } //taille $taille_maxi= 100000; // A noter qu'il y a aussi un paramétrage dans le php.ini pour limiter la taille max des fichiers qu'on peut uploader! $photo_taille = $file['size']; $photo = $file['name']; $photo_tmp = $file['tmp_name']; if (is_uploaded_file($photo_tmp)) { // Notice how to grab MIME type. $mime_type = mime_content_type($photo_tmp); //mime-type $allowedMimes = array( 'image/png', 'image/jpeg', 'image/jpeg', 'image/jpeg', 'image/gif' ); if(!in_array($mime_type,$allowedMimes){ echo "Type de fichier " . $mime_type . " invalide !"; return false; } //pour les tests: echo "<br>photo_taille : " . $photo_taille; echo "<br>taille_maxi : " . $taille_maxi; if ($photo_taille > $taille_maxi){ echo 'Le fichier est trop gros...'; return false; } if(move_uploaded_file($photo_tmp,$location.$photo)){ return insertPhoto($id_annonce,$location.$photo); } }else{ echo "<br>Erreur lors de l'upload du fichier !"; return false; } }
Bonjour yg_be, merci pour ta réponse :)
Je n'ai pas d'erreur. J'ai dû changer l'unité Mo de la variable $taille_maxi, et laissé celle sans unité.
Question: C'est combien 100000? Est-ce 10 Mo ou 1 Mo?
Je n'ai pas d'erreur. J'ai dû changer l'unité Mo de la variable $taille_maxi, et laissé celle sans unité.
Question: C'est combien 100000? Est-ce 10 Mo ou 1 Mo?
function savePhoto($id_annonce,$file,$location){ if(empty($file)){ echo "<br> ERREUR : Aucune image n'est envoyées pour l'upload"; var_dump($_FILES); return false; //pas d'image } $error=''; //mime-type $mime_types = array('png' => 'image/png', 'jpe' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'jpg' => 'image/jpeg', 'gif' => 'image/gif'); //taille $taille_maxi= 100000; $photo_taille = $file['size']; $photo = $file['name']; $photo_tmp = $file['tmp_name']; if(isset($mime_types)){ if ($photo_taille>$taille_maxi) {$error = 'Le fichier est trop gros...';} if(move_uploaded_file($photo_tmp,$location.$photo)){ return insertPhoto($id_annonce,$location.$photo); } else{ $error = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...'; } }
Mais pourquoi lorsque j'ai ajouté une image à 1 294 160 octets ça n'affiche pas que le fichier est trop gros?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai ajouté un echo et ça n'a pas affiché l'erreur:
function savePhoto($id_annonce,$file,$location){ if(empty($file)){ echo "<br> ERREUR : Aucune image n'est envoyées pour l'upload"; var_dump($_FILES); // juste pour le debug... return false; //pas d'image } //mime-type $mime_types = array('png' => 'image/png', 'jpe' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'jpg' => 'image/jpeg', 'gif' => 'image/gif'); //taille $taille_maxi= 100000; $photo_taille = $file['size']; $photo = $file['name']; $photo_tmp = $file['tmp_name']; if(isset($mime_types)){ if ($photo_taille>$taille_maxi) {echo 'Le fichier est trop gros...';} if(move_uploaded_file($photo_tmp,$location.$photo)){ return insertPhoto($id_annonce,$location.$photo); } } else{ echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...'; } }