Upload nur zip Dateien möglich?

visiondpc

Erfahrenes Mitglied
Hallo.
Über die Suche konnte ich mir leider nicht weiterhelfen.
Ich habe folgendes Problem:
Ich möchte bei einem Uploadformular sicherstellen, das nur zip Dateien hochgeladen werden können. Besteht eine Möglichkeit den Dateityp darauf zum prüfen oder muß ich den Dateinamen zerlegen und die letzten drei Zeichen des Strings checken? Die PHP-Doku ist in diesem Fall leider auch nicht wirklich hilfreich.

Danke schonmal im Vorraus..
 
Zuletzt bearbeitet:
Hi,

die letzten 3 Zeichen könntest du ja aus
PHP:
$_FILES['formularname']['name']
auslesen. Jedoch werden diese Daten vom Client geschickt und könnten fehlerhaft/manipuliert sein.

Von daher würde ich nach dem Upload probieren, das zip-Packet mit
PHP:
zip_open("dateiname");
zu öffnen. Wenn das nicht klappt, kann die Datei gelöscht und eine Fehlermeldung ausgegeben werden.

[1] zip_open()
 
Hallo!

Beispiele für ein Upload-Formular findest Du hier zu genüge (meist für Grafiken). ;)
Du müsstest also nur den Mime-Type anpassen..... application/zip.
Auf die Dateiendung würde ich micht auf keinen Fall verlassen..... man könnte die Dateiendung ja einfach umbenennen. ;)

Gruss Dr Dau
 
Also sowas hier

PHP:
if(move_uploaded_file($_FILES['new_file_name']['tmp_name'], $_POST['new_file_target'].'/'.$_FILES['new_file_name']['name']))
{
	if(!zip_open($_POST['new_file_target'].'/'.$_FILES['new_file_name']['name']))
	{
		unlink($_POST['new_file_target'].'/'.$_FILES['new_file_name']['name']);
	}  
}

Da kriege ich leider eine Fehlermeldung

Warning: zip_open() [function.zip-open]: Cannot open zip archive ../upload/test.zip in ....
 
Zuletzt bearbeitet:
probiers mal hiermit:

PHP:
$limitedext = array(".zip")

und dann eben die Variable mit if beim Upload einbauen!

gruß maxiw
 
Danke aber ich glaube ich habe den Fehler grade gefunden. Auf Windows-Systemen hat open_zip anscheinend ein Problem wenn man nicht den absoluten Pfad angibt. Bei kompletter Pfadangaber klappt die Funktion bestens.
Jetzt muß ich mir nurnoch was einfallen lassen, wie ich an den absoluten pfad der zu überprüfenden Datei komme :(
 
Zurück