ugrás a tartalomhoz

Csak gif és jpg fájlok feltöltésének engedélyezése

Anonymous · 2006. Május. 19. (P), 15.06

<?php

if (($_FILES["file"]["type"] == "image/gif") or ($_FILES["file"]["type"] == "image/jpeg") && ($_FILES["file"]["size"] < 1000000)) {
	if($_POST['x'] == "1") {
		move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
		echo"A {$_FILES["file"]["name"]} felülírása kész!";
	} else {
		if (file_exists("uploads/" . $_FILES["file"]["name"])) {
			echo"A {$_FILES["file"]["name"]} már a szerveren van!";
		} else {
			move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
			echo"A {$_FILES["file"]["name"]} másolása kész!";
		}
	}
		
} else {
	echo"Hiba! Nem támogatott formátum, vagy a fájl túl nagy. Mérete max 1024Kbyte lehet!";
}

?>
A fenti kóddal az a problémám hogy nem tölti fel a fájlokat, valószínű a legelső feltétellel van a baj, hogy lehetne lellenőrizni hogy tipusa gif, vagy jpeg?
 
1

Egyszerű debug...

janoszen · 2006. Május. 19. (P), 17.24
Egyszerű módja van a debugolásnak: kiírod a feltöltött fájl mime típusát. Egyébként még attól, hogy GIFként van küldve, nem biztos, hogy az GIF is. Szal érdemes lehet GD2vel vagy ImageMagick-el utánaellenőrizni, hogy valóban az-e.
2

imagesize()

moikboy · 2006. Május. 19. (P), 20.14
Én ezt a kódot használom képek ellenőrzésére:

<?php
if(@imagesize($file)) ...
?>
3

imagesize()

Anonymous · 2006. Május. 20. (Szo), 10.40
Segítenél?
Ez az imagesize() parancs milyen verziójú php-ban ven benne?
Én eddig csak a getimagesize() parancsot ismertem, de az sem true/false-ot ad vissza, hanem egy tömböt, ami tartalmazza a kép méreteit, stb-t.

Gyulus