Vérification du mime-type, de l'extension et de la taille
Résolu
max30_3775
Messages postés
185
Statut
Membre
-
max30_3775 Messages postés 185 Statut Membre -
max30_3775 Messages postés 185 Statut Membre -
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
6 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
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?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...'; } } -
Bonjour Jordane, ça marche parfaitement. Si la taille de l'image est supérieure à, l'annonce n'affiche pas d'image. Merci !