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

Résolu
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   -  
 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!
A voir également:

4 réponses

skisnowshop Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   18
 
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   Statut Membre Dernière intervention   1
 
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 55 Date d'inscription   Statut Membre Dernière intervention   18
 
Le plus facile pour toi c'est de rajouter la liste des extensions en majuscules
0
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   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 !!!
0
cretinator Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   1
 
Au secours toujours personne pour m'aider ????
0
TT
 
Quand error=1 c'est que le fichier est trop gros
0