webForumDet fria alternativet

Bilduppladdning

PHP

6 svar · 661 visningar · startad av Thompa__85

Medlem sedan aug. 2002600 inlägg
Frågan#1

Hej!
Jag har problem med ett script som laddar upp bilder.
När jag försöker ladda upp jpg samt gif så får jag error. Har testat många olika sätt men får inte till det.

Såhär ser koden ut idag:

// Only one of these image types should be allowed for upload
$allowed_image_types = array('image/pjpeg'=>"jpg",'image/jpeg'=>"jpg",'image/JPEG'=>"jpg",'image/jpg'=>"jpg",'image/JPG'=>"jpg",'image/png'=>"png",'image/PNG'=>"png",'image/x-png'=>"png",'image/gif'=>"gif",'image/jpeg'=>"jpeg",'image/JPEG'=>"JPEG");
$allowed_image_ext = array_unique($allowed_image_types); // do not change this
$image_ext = "";	// initialise variable, do not change this.
foreach ($allowed_image_ext as $mime_type => $ext) {
    $image_ext.= strtoupper($ext)." ";
}

Lite längre ner i koden:

		foreach ($allowed_image_types as $mime_type => $ext) {
			//loop through the specified image types and if they match the extension then break out
			//everything is ok so go and check file size
			if($file_ext==$ext && $userfile_type==$mime_type){
				$error = "";
				break;
			}else{
				$error = "Endast <strong>".$image_ext."</strong> format kan laddas upp<br />";
			}

Någon som vet vad jag gjort för fel?

Tack på förhand!

Medlem sedan jan. 2005953 inlägg
#2

Vad får du för felmeddelande?
Hur får $file_ext och $userfile_type sina värden?
Fungerar det med jpg och png?

Medlem sedan aug. 2002600 inlägg
#3
	$userfile_type = $_FILES['image']['type'];
	$filename = basename($_FILES['image']['name']);
	$file_ext = strtolower(substr($filename, strrpos($filename, '.') + 1));

Den säger att att formatet är fel.
PNG, JPEG fungerar bra...

Medlem sedan jan. 2005953 inlägg
#4

Hmm... gif fungerar bra för mig. Däremot inte jpg-filer, vilket beror på att värdet på $allowed_image_types['image/jpeg'] skrivs över.

Medlem sedan aug. 2002600 inlägg
#5

metalboy skrev:

Hmm... gif fungerar bra för mig. Däremot inte jpg-filer, vilket beror på att värdet på $allowed_image_types['image/jpeg'] skrivs över.

Okej, hur menar du med att de skrivs över? hur rättar jag till de? :)

Medlem sedan jan. 2005953 inlägg
#6

Du har 'image/jpeg'=>"jpg" och lite senare på raden skriver du över det värdet med 'image/jpeg'=>"jpeg"

Medlem sedan aug. 2002600 inlägg
#7

metalboy skrev:

Du har 'image/jpeg'=>"jpg" och lite senare på raden skriver du över det värdet med 'image/jpeg'=>"jpeg"

Okej. Så här har jag gjort nu:

$allowed_image_types = array('image/pjpeg'=>"jpg",'image/jpeg'=>"jpg",'image/jpg'=>"jpg",'image/png'=>"png",'image/x-png'=>"png",'image/gif'=>"gif");

Problemet är att det inte fungerar att ladda upp jpeg och även JPG ibland.
Hur hade du skrivit för att få det att fungera?

Tack på förhand!

273 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)