problème de type mime sous ie

Répondre
sparh
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?
LupusMic
le 17/11/2006 à 13:46
LupusMic
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.
sparh
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!
LupusMic
le 17/11/2006 à 14:29
LupusMic
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.
sparh
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
mojorisin
le 17/11/2006 à 20:04
mojorisin
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
sparh
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.
++
Bzh
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....
LupusMic
le 20/11/2006 à 00:12
LupusMic
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.
Répondre
LoadingChargement en cours