problème de type mime sous ie
le 17/11/2006 à 12:39
sparh
Salut,
toujours sur des formulaire d'upload, cette fois des images.
Tout va bien avec FF mais sous IE seul les gif passent.
if ($type == "image/gif" or $type == "image/jpeg" && $size<=305500 )
J'ai 2-3 sujets sur le net qui traitent du même sujet mais sans trouver de réponse au problème.
Bien sur j'ai essayé:
if ($type === "image/gif" or $type === "image/jpeg" && $size<=305500 )
mais c'est le même problème!
Pouvez vous m'aider?
L'opérateur and est prioritaire sur l'opérateur or. Je te conseilles de toujours utiliser des parenthèses dès lors que tu mélanges des and et des or.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
le 17/11/2006 à 14:06
sparh
ok, merci pour l'info.
J'ai essayé:
if ($type === "image/jpeg" && $size<=305500 )
if ($type === "image/jpeg" )
if ($type == "image/jpeg")
pour voir et rien à faire, pas de problème avec FF, ca ne passe pas sous IE!
Je crois que c'est foutut!
Fais un var_dump des variables testées pour voir ce qu'il y a dedans, et quelle est leur nature.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
le 17/11/2006 à 19:17
sparh
pfff quel galère ie! (80% de mes visiteurs!)
Donc le var_dump me renvoi:
image/pjpeg pour une jpeg et
image/x-png pour une png (sous ie bien sur)
Donc quand je remplace image/jpeg par image/pjpeg dans ma condition ca passe chez ie mais plus chez FF!!
Pour firefox c'est donc (et ce sont les vrai type mime)
image/jpeg --> jpeg et
image/png --> pour png
Le gif passe correctement avec les 2 navigateurs!
Donc pourriez vous m'aider à adapter mon script selon le navigateur svp?
Voilà ma condition:
if (($type === "image/gif" or $type === "image/jpeg" or $type === "image/png")
&& $size<=305500 )
donc là ce serai pour FF.
Comment faire pour ie svp??
Merci d'avance
Salut,
gere ce la via un tableau :
$acceptedMime = array(
'image/pjpeg ',
'image/jpeg ',
'image/jpg ',
'image/x-png',
'image/png',
'image/gif'
);
if(in_array($type,$acceptedMime) && $size<=305500){
// traitement ici
}
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
le 19/11/2006 à 10:20
sparh
ouaou!!!
ca m'a l'air pas mal du tout!!
Merci ;)
le 19/11/2006 à 11:55
sparh
ok merci,
sauf pour les jpeg qui ne passent plus ni avec FF ni avec IE.
Mais bon gif et png ca me suffit.
++
le 19/11/2006 à 13:10
Bzh
C'est normal ! Si tu n'avais pas fait un simple copié-collé, tu aurais compris !
$acceptedMime = array(
'image/pjpeg ',
'image/jpeg ',
'image/jpg ',
'image/x-png',
'image/png',
'image/gif'
);
remplace ça par
$acceptedMime = array(
'image/pjpeg',
'image/jpeg',
'image/jpg',
'image/x-png',
'image/png',
'image/gif'
);
Voila, refait denouveau ton copié-collé et tu verras, les jpeg passeront :) !!!
Tchussss....
Et je vais rajouter une couche. Ici, tu fais confiances aux informations envoyées par le navigateur, ce qui n'est pas une bonne idée.
Ce que je te propose serait d'utiliser mimemagic pour déterminer le type réel du fichier. Ça te permettrais d'avoir une information fiable.
Bien sûr, tu as le réflexe de regarder la doc en me lisant ;)
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.