Dateityp von hochgeladenen Dateien auslesen
Hallo,
ich möchte überprüfen, ob eine hochgeladene Datei im TARGZ-Format vorliegt. Wie macht man das? Bei Bildern geht das ja mit getimagesize(), das hilft aber logischer Weise nicht bei Archiven. Die Funktion filetype http://us2.php.net/filetype hilft mir, jedenfalls mit dem unter dem Link beschriebenem Syntax nicht weiter. Ich hätte es - wie gesagt - schon gerne etwas genauer als fifo, char, dir, block, link, file oder unknown.
Gruß
DeeDee0815
ich möchte überprüfen, ob eine hochgeladene Datei im TARGZ-Format vorliegt. Wie macht man das? Bei Bildern geht das ja mit getimagesize(), das hilft aber logischer Weise nicht bei Archiven. Die Funktion filetype http://us2.php.net/filetype hilft mir, jedenfalls mit dem unter dem Link beschriebenem Syntax nicht weiter. Ich hätte es - wie gesagt - schon gerne etwas genauer als fifo, char, dir, block, link, file oder unknown.
Gruß
DeeDee0815
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 44176
Url: https://administrator.de/contentid/44176
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
also so müsste es gehen. Du musst halt noch den Pfad anpassen und die Dateitypen.
Gruß
Dani
also so müsste es gehen. Du musst halt noch den Pfad anpassen und die Dateitypen.
if($_FILES["file"]["name"]!="") //Wurde ein Bild überhaupt ausgewählt?
{
// Variabeln festlegen für Bild-Upload
$allowed_types = "(jpg|jpeg|gif)"; //Erlaubte Endungen des Bildes
$name=$_FILES["file"]["name"]; //Bildname (beispiel.jpg) in Variable $bildname zuweisen
$name=str_ireplace(' ', "_", $name); //Leerzeichen werden durch _ ersetzt
// Existiert das Bild schon auf dem Server?
if(file_exists("PFAD/$name"))
{
echo "<h2><b>Der Dateiname des gewünschten Bildes ist bereits vorhanden,
Sie müssen den Bildnamen umbenennen!</b></h2>"; //Ausgabe der Fehlermeldung
}
else //Andernfalls, wenn das Bild auf dem Server nicht existiert
{
// Wurde wirklich eine Datei hochgeladen?
if(is_uploaded_file($_FILES["file"]["tmp_name"]))
{
// Gültige Endung? ($ = Am Ende des Dateinamens) (/i = Groß- Kleinschreibung nicht berücksichtigen)
if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"]))
{
ECHO "DATEI OK"
}
else //Datei ungültige Endung
{
echo "<h2><b>Die Datei besitzt eine ungültige Endung.</b></h2>";
}
}
else //Keine Datei angegeben
{
echo "<h2><b>Keine Datei zum Hochladen angegeben.</b></h2>";
}
}
}
Gruß
Dani
Probiere es mal mit dem Shell-Command "file <dateiname>"
Hier bekommst du Deine gewünschten Information.
ws-linux-01:/usr# file /usr/share/gettext/archive.tar.gz
/usr/share/gettext/archive.tar.gz: gzip compressed data, from Unix
ws-linux-01:/usr#
Die Ausführung kannst du mit system() oder exec() machen. Die Auswertung dann wiederrum in PHP. mehr dazu unter php.net/system und php.net/exec
Hier bekommst du Deine gewünschten Information.
ws-linux-01:/usr# file /usr/share/gettext/archive.tar.gz
/usr/share/gettext/archive.tar.gz: gzip compressed data, from Unix
ws-linux-01:/usr#
Die Ausführung kannst du mit system() oder exec() machen. Die Auswertung dann wiederrum in PHP. mehr dazu unter php.net/system und php.net/exec