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
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 dat - Guide
- Verificateur de lien - Guide
- Reduire taille image - Guide
6 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 586
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...';
}
}