Problème d' Upload d' extension nom reconnu !
Résolu
cretinator
Messages postés
75
Statut
Membre
-
TT -
TT -
Bonjour à tous,
voici mon problème:
J'ai un souci pour l'Upload un avatar.
voici le script pour le formulaire:
et le code du fichier upload.php :
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!
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
-
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 -
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 !!! -
-