webForumDet fria alternativet

Filuppladdning, endast jpg

PHP

6 svar · 477 visningar · startad av Webslave

Medlem sedan maj 2002647 inlägg
Frågan#1

Hoj, har kikat runt på wF efter en koll på filändelse och har hittat ett par alternativ men här är mitt krux:

Jag vill att man bara ska få ladda upp .jpg och det går bra (oftast) men om någon försöker ladda upp en bild med filändelsen .JPG så går det inte... likaså med .jpeg och .JPEG... hur fixa?

Jag har testat att göra om detta skript:

if(!strchr($_FILES['userAvatar']['name'], ".jpg")){
		header("location: ../../?loc=error&reason=fileType");
		exit;
	}

Till:

if(!strchr($_FILES['userAvatar']['name'], ".jpg") || !strchr($_FILES['userAvatar']['name'], ".JPG")){
		header("location: ../../?loc=error&reason=fileType");
		exit;
	}

... men utan att lyckas... kan någon peta mig i rätt riktning?

Medlem sedan maj 2002647 inlägg
#2

Aha... stristr() istället tar hand om .JPG men om man vill ha in .jpeg filändelse? Vad göra?

Medlem sedan sep. 200134 inlägg
#3

Om du skriver såhär så fungerar det nog ganska bra, dessutom får du ut extention på filen också vilket kan vara bra ibland antar jag. =)
Har inte testat koden, men själva iden funkar då i alla fall! =)

$tmp = explod(".",$_FILES['userAvatar']['name']);
$last = count($tmp) - 1;
$ext = $tmp[$last];
if($ext == "jpg" || $ext == "jpeg" || $ext == "JPG") {
       //do stuff
}
Medlem sedan maj 2002647 inlägg
#4

Ska testa den så får vi se ;)

Medlem sedan mars 20021 889 inlägg
#5

Gör om filändelsen till gemener så är du förbered för alla varianter!?

Medlem sedan dec. 1999757 inlägg
#6

Det är skillnad på filändelse och filformat. Här är ett par exempel.

if (strtolower(substr($_FILES['userAvatar']['name'], (strrpos($_FILES['userAvatar']['name'], '.')))) == '.jpg') {
	// Filändelsen är .jpg eller .JPG
}

if ($_FILES['userAvatar']['type'] == "image/pjpeg" ) {
	// Filen är i formatet jpeg
}
Medlem sedan maj 2002647 inlägg
#7

Oh... danke Kjell... mycket bättre koll ;)

274 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
137 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
138 ms — ändringar (db)