Avatar billede wicked Juniormester
03. juli 2009 - 19:27 Der er 15 kommentarer og
1 løsning

PHP sammenlign type på uploadet billede

Hey Eksperter!

Det er sikkert varmen, men nu har jeg siddet i meeeeget lang tid og dummet mig med en meget simpel ting, så nu håber jeg i kan hjælpe. Mit problem er at jeg har et upload script der fungere ganske udemærket. Nu vil jeg så lige tilføje en IF funktion der checker at det nu også kun er .jpg billeder der bliver uploadet.

Jeg kan sagtense finde typen ved at skrive
$_FILES['file1']['type'] og hvis jeg "echo'er" det så skriver den image/pjpeg. Jeg har prøvet en hel del som jeg slet ikke vil komme ind på her, men hvis der er en venlig sjæl der vil skrive en IF sætning til hvordan jeg checker om $_FILES['file1']['type'] er lig med image/pjpeg så ville det være fantastisk. Jeg er sgu gået helt kold lige nu :P

//Wicked
Avatar billede elkoger Nybegynder
03. juli 2009 - 19:34 #1
if (($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/jpeg")) {
print ":D";
}
Avatar billede wicked Juniormester
03. juli 2009 - 19:43 #2
Perfekt! Men så var det jeg lige ville ændrer en smule så det passede ind i min kode også virker det lige pludselig ikke! :P Burde det her ikke virke lige så godt:

if (($_FILES["file1"]["type"] != "image/pjpeg") OR ($_FILES["file1"]["type"] != "image/jpeg")) {

print "Forkert filtype";

}

Eller er jeg helt væk her !?
Avatar billede wicked Juniormester
03. juli 2009 - 19:44 #3
For nu siger den at alle type filer er "Forkert filtype" :/
Avatar billede elkoger Nybegynder
03. juli 2009 - 20:01 #4
prøv lige & istedet for OR
Avatar billede elkoger Nybegynder
03. juli 2009 - 20:04 #5
eller vent, det skal være || (or)
fordi det du siger der, er at den SKAL være jpeg OG pjpeg
Avatar billede elkoger Nybegynder
03. juli 2009 - 20:06 #6
arj, undskyld min forvirring (varmen)

prøv at sige;
print $_FILES["file1"]["type"];
INDEN if'en, og se hvad den skriver, kontra den if vi har lavet

for giver da ingen mening :D
Avatar billede wicked Juniormester
03. juli 2009 - 20:07 #7
Ja det må skulle være OR det eneste jeg har ændret er at jeg gået fra == til != også vil det bare ikke virke for mig. Det burde bare være mega simpelt det her :S
Avatar billede wicked Juniormester
03. juli 2009 - 20:14 #8
Den udskriver dette: image/pjpeg

Og det virker ganske perfekt det første du skrev, det var først da jeg prøvede at passe det til så vil det ikke. Det virker helt undsvagt :P
Avatar billede elkoger Nybegynder
03. juli 2009 - 20:16 #9
oki, ellers mener jeg at selve: OR kun var i en gammel version af php (er ikke sikker, har altid brugt || )

hvordan ser koden ud nu, og hvad virker ikke :)
Avatar billede wicked Juniormester
03. juli 2009 - 20:23 #10
YES det virker nu! Koden ser sådan ud:

if ($_FILES["file1"]["type"] != "image/pjpeg") {

print "Forkert filtype";

}

Jeg tror simpelthen det er varmen der skaber en total forvirring, men du skal ihvertfald have tak for hjælpen jeg vil ikke tage mere af din tid med mine koger problemer :) Mange tak for hjælpen :)
Avatar billede elkoger Nybegynder
03. juli 2009 - 20:26 #11
hehe oki super :D
men du skal lige være OBS på at det kun er IE der behandler jpeg billeder som pjpeg, hvis en bruger FF eller andet, så vil det være image/jpeg
Avatar billede elkoger Nybegynder
03. juli 2009 - 20:29 #12
så det du evt skal have lavet er:

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

print "Forkert filtype";

}
Avatar billede wicked Juniormester
03. juli 2009 - 20:30 #13
ahh på den måde det vidste jeg ikke. Tak for den ekstra info :)
Avatar billede elkoger Nybegynder
03. juli 2009 - 20:30 #14
nej glem det sidste, tror bare jeg skal koncentere mig om mit arbejde pt, for den er da helt gal lige nu :D
Avatar billede expnet Seniormester
03. juli 2009 - 20:33 #15
kunne det være en mulighed at tjekker op i mod en array

$FileTypeAllow = array("image/pjpeg","image/jpeg");
$FileTypeCheck = $_FILES["file1"]["type"];

if (in_array($FileTypeAllow, $FileTypeCheck)) {
    echo "Filtypen: ".$FileTypeCheck ." er godkendt";
}
Avatar billede elkoger Nybegynder
03. juli 2009 - 20:44 #16
http://sygko.net/test.php

det jeg skrev virkede faktisk :)
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