Datei nach endung suchen

EuroCent

Klappstuhl 2.0
Hallo sitze an einem Problem!

Folgendes: Ich hab ein Formular mit dem ich Dateien Hochladen lasse dabei werden die endungen überprüft. Bei Fehlschlag kommt die passende Meldung

Das Hochladen und alles klappt wunderbar ohne Probleme!

Jedoch möchte ich das nach oder vor dem Kopieren der Datei in das angegebene Verzeichnis ein Eintrag in die Datenabnk erfolgt!

Gut soweit hab ich es auch. Nun möchte ich das die Endung der Datei ohne den anstehenden . "Punkt" in die Datenbank geschrieben wird!

Beispiel: datei.rar

wie müsste ich es anstellen damit ich nur die endung bekomme ist wichtig um images daran zu binden die für das jeweilge File bestimmt ist

RAR = rar.gif etc...

Ich hoffe man kann mir folgen!

hab es mal so probiert

PHP:
<?php
$datei = "datei.rar";
// Typen die Erlaubt sind
$types = "(jpg|jpeg|gif|bmp|png|txt|rar|zip|exe)";
// Endung auslesen
$datei_neu = preg_match("/\." . $types . "$/i", $datei);
echo $datei_neu;
?>

Es erscheint allerding eine "1" als ergebnis

Ich denke das liegt daran weil die Typen als eine Art Array stehen und er somit die Positionen errechnet!

Dabei käme allerding jpeg statt rar

jpeg = 1
rar = 6

Kann mir da jemand helfen?

Ich danke im voraus
 
Hi,

die 1 bedeutet das die Prüfung erfolgreich war. Wenn da null steht isses fehgeschlagen.
Kannst das hat noch mitner If benutzen dann sollts gehen.
 
Ich würde ja ganz einfach mal sagen :rtfm:

Aber wir wollen nicht so sein :)

Die 1 liefert er zurück weil er mit preg_mtach einen Treffer findet.

Allerdings um dir den Treffer ausgeben zu lassen musst du deinen Funktionsaufruf erweitern.

PHP:
preg_match("/\." . $types . "$/i", $datei, $treffer); 

var_dump(treffer);
 
Erstmal danke aber komm da nicht ganz mit!

Gibt es eine Leichtere Methode den Datei-Type festzustellen und auszugeben?

Also mit $_FILES["file"]["type"] = bekomme ich ja den Mime-Type aber nicht die besagte Endung

Kann man den $_FILES["file"]["name"] nicht so durchsuchen das er mir die endung die in dem $tyes steht sucht?

Hab damit nocht nicht den grossen Plan!

Also wenn jemand eine datei: test.txt hochlädt dann ist es text/plain aber das ist ja für den uploader nicht relevant, sondern nur die endung des Types

Dabei sollte er immer noch dem letzen "Punkt" suchen und hinter dem Punkt den text ausgeben!

Den es gibt ja Leute die solche dateien Hochladen: test.pdf.exe ;)
 
Oder einfach so :
PHP:
<?php

  $strFilePath = pathinfo("/datei.rar");

  $arrFileInfos = pathinfo(strFilePath);

  $strFileExtension = $arrFileInfos ["extension"];

?>
 
Zurück