Problème d' Upload d' extension nom reconnu ! [Résolu/Fermé]

Signaler
Messages postés
67
Date d'inscription
samedi 26 janvier 2013
Statut
Membre
Dernière intervention
6 décembre 2014
-
 TT -
Bonjour à tous,

voici mon problème:
J'ai un souci pour l'Upload un avatar.

voici le script pour le formulaire:


<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="5000000">
<input type="file" name="avatar">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>

et le code du fichier upload.php :


if(isset($_FILES['avatar']))
{
$fichier = basename($_FILES['avatar']['name']);
$dossier = 'upload/';
$taille_maxi = 5000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png','.gif','.jpg','.jpeg');
$extension = strrchr($_FILES['avatar']['name'], '.');
if(!in_array($extension, $extensions))
{
$informations = Array(
false,
'Désolé ',
'Désolé !<br>Votre image n\'a pas l\'extention<br>TYPE: .png, .gif, .jpg, .jpeg !',
'',
ROOTPATH.'/membres/moncompte.php',
3
);
require_once('../information.php');
exit();
}
if($taille>$taille_maxi)
{
$informations = Array(
false,
'Désolé ',
'Désolé !<br>Votre image est trop lourde !',
'',
ROOTPATH.'/membres/moncompte.php',
3
);
require_once('../information.php');
exit();
}
if(!isset($erreur))
{
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i','-', $fichier);
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier))
{
$informations = Array(
false,
'Bravo ',
'Bravo !<br>Votre avatar a bien été enregistré.',
'',
ROOTPATH.'/membres/moncompte.php',
3
);
require_once('../information.php');
exit();
}
else
{
$informations = Array(
false,
'Désolé ',
'Désolé !<br>Votre avatar n\'a pas pu être enregistré.',
'',
ROOTPATH.'/membres/moncompte.php',
3
);
require_once('../information.php');
exit();
}
}
else
{
echo $erreur;
}
}

Le problème est lors de l'upload des fichiers du style DSCNXXXX.JPG ou IMGXXX.JPG,

L'erreur des extensions qui s'affiche ! Pourquoi???

Le champs input type "hidden" est configurer à max 5 mo.
et en moyenne mes photos sont de 2 à 4 mo. et type de fichier est JPEG ou JPG.

Merci pour votre future aide!

4 réponses

Messages postés
51
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
19 juillet 2016
17
Le script PHP fait un test sur le nom des extensions en minuscule.

Vous pouvez au choix, rajouter les extensions en majuscule dans la liste:
('.png','.gif','.jpg','.jpeg', '.JPG', )

Ou utiliser la fonction strtolower pour transformer l'extension en minuscules avant de faire le test sur les valeurs autorisées
Messages postés
67
Date d'inscription
samedi 26 janvier 2013
Statut
Membre
Dernière intervention
6 décembre 2014
1
Merci pour l'info l'ami ! Mais dans cette situation laquelle est la plus sûre? Ou la plus pratique pour la BDD
Messages postés
51
Date d'inscription
mardi 11 mars 2014
Statut
Membre
Dernière intervention
19 juillet 2016
17
Le plus facile pour toi c'est de rajouter la liste des extensions en majuscules
Messages postés
67
Date d'inscription
samedi 26 janvier 2013
Statut
Membre
Dernière intervention
6 décembre 2014
1
OK merci ! Mais j'ai quand même un souci avec certains fichiers DSCNXXX.JPG certains ne passent pas...
Messages postés
67
Date d'inscription
samedi 26 janvier 2013
Statut
Membre
Dernière intervention
6 décembre 2014
1
Hello tous le monde !

Voilà en ayant suivi la démarche de si dessus le problème persiste pour certaines photos !!!! et j'ai effectuer un var_drum sur la variable et la variable est vide lors de la saisie:
voici le resultat pour cette photo. (photo faite par moi même)

array
'name' => string 'DSCN0220.JPG' (length=12)
'type' => string '' (length=0)
'tmp_name' => string '' (length=0)
'error' => int 1
'size' => int 0

Et pour une autre photo DSCN02927.JPG (cette photo à été téléchargé et fonctionne!)

Au secours help !!!
Messages postés
67
Date d'inscription
samedi 26 janvier 2013
Statut
Membre
Dernière intervention
6 décembre 2014
1
Au secours toujours personne pour m'aider ????
Quand error=1 c'est que le fichier est trop gros