Avatar billede dj-sejler Praktikant
12. august 2005 - 03:18 Der er 9 kommentarer og
1 løsning

$_FILES[upfil][type] giver problemer

Hej eksperter...

Jeg har et problem med IE. Nedenstående kodeudsnit giver fejl i IE men virker perfekt i Firefox, og jeg kan simpelhen ikke forstå det.

// Kontrol af filens type
if ($_FILES["upfil"]["type"] == "image/jpeg") {
  $type = "jpg";
} else {
  die("Det er ikke et billede du forsøger at oploade!");
}

Er der nogen der kan hjælpe?
Avatar billede dj-sejler Praktikant
12. august 2005 - 04:17 #1
Problemet løst...

IE syntes bare at mine jpg-billeder hedder "image/pjpeg"
så har rettet det til

// Kontrol af filens type
if ($_FILES["upfil"]["type"] == "image/jpeg" || $_FILES["upfil"]["type"] == "image/jpg" || $_FILES["upfil"]["type"] == "image/pjpeg") {
  $type = "jpg";
} else {
  die("Det er ikke et billede du forsøger at oploade!");
}

og det virker :D
Avatar billede delphinarious Nybegynder
12. august 2005 - 09:25 #2
Det skulle ikke gerne være noget IE bare synes... Nu er det jo ikke browseren, der afgør hvilket filformat, det er, men serveren. Derfor skulle det gerne give samme resultat, uanset hvilken browser du benytter.
Avatar billede dj-sejler Praktikant
12. august 2005 - 12:10 #3
det gør det ikke...
i firefox virkede det med "image/jpeg" alene
men da jeg tilføjede "image/jpg" virkede det hverken i Firefox eller i IE
men igen da jeg tilføjede "image/pjpeg" virkede det i begge browsere, og der var jeg glad ;)

hvorfor det var sådan ved jeg ikke...
Avatar billede delphinarious Nybegynder
12. august 2005 - 12:12 #4
Og du er sikker på, at det er samme fil, du har forsøgt at uploade?
Avatar billede dj-sejler Praktikant
12. august 2005 - 12:26 #5
ja det er jeg
Avatar billede erikjacobsen Ekspert
12. august 2005 - 12:29 #6
$_FILES["upfil"]["type"] er en oplysning, der sættes af klienten/browseren, ikke serveren. Den kan derfor også fuskes med, så det er ikke sikkert at bruge, i hvert fald ikke som eneste test. Det kan lade sig gøre at uploade en .php fil som image/jpg, og så har man fuld adgang til din server. Check også på extension, eller sørg for den kun kan blive fx .jpg
Avatar billede delphinarious Nybegynder
12. august 2005 - 12:38 #7
Ok ok - min fejl. Man skal lære så længe man lever, ikke? :-)
Avatar billede dj-sejler Praktikant
12. august 2005 - 12:43 #8
-> erikjacobsen

Hvordan ville du gøre det?

Prøvede lige at oplade en php-fil med efternavn .jpg, og i IE brokkede den sig men Firefox havde ingen problemer med at lukke den, dog blive det jeg havde skreve ikke vidst.

<?php
echo 'snydt! :D';
?>
Avatar billede dj-sejler Praktikant
12. august 2005 - 12:45 #9
måske med  $size = @getimagesize($fra);

hvor $size[2] så skal være "jpg"
Avatar billede erikjacobsen Ekspert
12. august 2005 - 12:49 #10
Som jeg siger: check på extension.  Du får ikke en browser til at lave den slags snyd - der bruger vi helt andre værktøjer. Jeg har ikke lyst til at gå i detaljer ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester