Problème d' Upload d' extension nom reconnu !

Résolu/Fermé
cretinator Messages postés 67 Date d'inscription samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 - 12 mars 2014 à 10:53
 TT - 1 avril 2014 à 15:16
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!
A voir également:

4 réponses

skisnowshop Messages postés 51 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 19 juillet 2016 18
12 mars 2014 à 11:03
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
0
cretinator Messages postés 67 Date d'inscription samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 1
12 mars 2014 à 11:14
Merci pour l'info l'ami ! Mais dans cette situation laquelle est la plus sûre? Ou la plus pratique pour la BDD
0
skisnowshop Messages postés 51 Date d'inscription mardi 11 mars 2014 Statut Membre Dernière intervention 19 juillet 2016 18
12 mars 2014 à 11:31
Le plus facile pour toi c'est de rajouter la liste des extensions en majuscules
0
cretinator Messages postés 67 Date d'inscription samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 1
12 mars 2014 à 11:48
OK merci ! Mais j'ai quand même un souci avec certains fichiers DSCNXXX.JPG certains ne passent pas...
0
cretinator Messages postés 67 Date d'inscription samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 1
Modifié par cretinator le 13/03/2014 à 16:30
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 !!!
0
cretinator Messages postés 67 Date d'inscription samedi 26 janvier 2013 Statut Membre Dernière intervention 6 décembre 2014 1
19 mars 2014 à 20:24
Au secours toujours personne pour m'aider ????
0
Quand error=1 c'est que le fichier est trop gros
0