Avatar billede tryout Nybegynder
22. august 2004 - 17:21 Der er 14 kommentarer og
1 løsning

upload script - test af fil-type

jeg har brug for at test at der kun bliver uploaded filer af typen .jpg eller .jpeg

har forsøgt med

if( $_FILES["upfile"]["type"] != "image/pjpeg")
{   
    die("Desvære - der accepteres kun filer af typen .jpg);
}
Avatar billede detox Nybegynder
22. august 2004 - 17:23 #1
Måske:

if( $_FILES["upfile"]["type"] != "image/pjpeg" || $_FILES["upfile"]["type"] != "image/jpeg")
{   
    die("Desvære - der accepteres kun filer af typen .jpg);
}
Avatar billede detox Nybegynder
22. august 2004 - 17:27 #2
Ellers kunne du jo tjekke hvad den sender med:

echo $_FILES["upfile"]["type"];
exit;
Avatar billede tryout Nybegynder
22. august 2004 - 18:11 #3
echo $_FILES["upfile"]["type"];
udskriver "image/pjpeg" alligevel ryger den ind i if-sætningen:

if( $_FILES["upfile"]["type"] != "image/pjpeg" || $_FILES["upfile"]["type"] != "image/jpeg")
{   
    die("Desvære - der accepteres kun filer af typen .jpg);
}
Avatar billede dennismp Nybegynder
22. august 2004 - 18:14 #4
Den er også forkert.

if( $_FILES["upfile"]["type"] != "image/pjpeg" && $_FILES["upfile"]["type"] != "image/jpeg")

Det skal være AND og ikke OR
Avatar billede detox Nybegynder
22. august 2004 - 18:23 #5
Ups, AND ikke OR ;o)
Men alligevel pudsigt dit første forsøg ikke virker så.
Avatar billede erikjacobsen Ekspert
22. august 2004 - 18:46 #6
Og den sædvanlige advarsel: enhver hacker kan fuske med typen, og f.ex. sende
et PHP-script som "image/jpeg". Derved kan han lægge et PHP-script i dit
billedkatalog, og få kontrol over dit server/webhotel. Der er flere løsning, og
den ene er også at checke extension.
Avatar billede tryout Nybegynder
22. august 2004 - 18:53 #7
OKAY, tak det var jeg ikke klar over, hvordan gør man det?
Avatar billede tryout Nybegynder
22. august 2004 - 18:53 #8
Men det andet virker nu.
Avatar billede dennismp Nybegynder
22. august 2004 - 19:01 #9
Hvis det kun er billeder, så kan du bruge getimagesize() - den funktion returnerer et array, hvor du bl.a kan se filtypen (4 element).

http://dk2.php.net/getimagesize
Avatar billede erikjacobsen Ekspert
22. august 2004 - 19:12 #10
Desværre ikke nok. Det vil igen være umådelig nemt at lave begyndelsen til en billedfil,
og senere har <? ... ?> med PHP i. Man kan gøre det på andre måder, men check
fx. extension på den uploadede fil.
Avatar billede dennismp Nybegynder
22. august 2004 - 19:24 #11
Ah, ja. Det havde jeg ikke tænkt på - så har du ret i at extension-check er bedre.
Avatar billede tryout Nybegynder
08. september 2004 - 14:51 #12
Men hvordan, checker jeg extension?

$_FILES["upfile"]["name"]
Avatar billede detox Nybegynder
08. september 2004 - 15:17 #13
Fx:

$accept = array('.jpg','.jpeg','.png','.gif');
$ext = strrchr($_FILES['upfile']['name'], '.');
if (in_array($ext, $accept)) {
    // godkendt
} else {
    // ikke godkendt
}
Avatar billede detox Nybegynder
08. september 2004 - 15:58 #14
Eller:

$path_parts = pathinfo($_FILES['upfile']['name']);
$ext = $path_parts["extension"];
$accept = array('jpg','jpeg'); // tilføj selv flere extensions
if (in_array($ext, $accept)) {
    // godkendt
} else {
    // ikke godkendt
}
Avatar billede tryout Nybegynder
23. februar 2007 - 16:38 #15
lukker
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