P
P_F
Guten Abend,
ich möchte für einen Datei-Upload eine Funktion schreiben, die die Datei auf den Typ überprüft.
Vorerst habe ich eine Funktion, die Festlegt welche Dateitypen zugelassen sind:
Nun die Funktion, die alle Typen durchläuft und mit dem übergebenen Dateitypen vergleicht. Wenn Dateityp und Typ aus Array übereinstimmen, also die Funktion einen Rückgabewert hat, ist die Datei ok.
Wenn ich die Funktion mal mit echo aufrufe, bekomme ich jedoch immer den mimetyp der Datei ausgegeben, auch wenn dieser Typ garnicht in meinem Typen-Array steht.
Bitte helft mir ...
ich möchte für einen Datei-Upload eine Funktion schreiben, die die Datei auf den Typ überprüft.
Vorerst habe ich eine Funktion, die Festlegt welche Dateitypen zugelassen sind:
PHP:
<?
function FileTypes() {
$type = array();
// Bilddateien
$type[0]['type'] = 'image/gif';
$type[0]['img'] = '.gif';
$type[1]['type'] = 'image/jpeg';
$type[1]['img'] = '.gif';
$type[2]['type'] = 'image/pjpeg';
$type[2]['img'] = '.gif';
$type[3]['type'] = 'image/tiff';
$type[3]['img'] = '.gif';
$type[4]['type'] = 'image/vnd.wap.wbmp';
$type[4]['img'] = '.gif';
$type[5]['type'] = 'image/x-portable-bitmap';
$type[5]['img'] = '.gif';
// Applikationen
$type[6]['type'] = 'application/x-tar';
$type[6]['img'] = '.gif';
$type[7]['type'] = 'application/zip';
$type[7]['img'] = '.gif';
$type[8]['type'] = 'application/gzip';
$type[8]['img'] = '.gif';
$type[9]['type'] = 'application/msexcel';
$type[9]['img'] = 'excel.gif';
$type[10]['type'] = 'application/mspowerpoint';
$type[10]['img'] = 'pp.gif';
$type[11]['type'] = 'application/msword';
$type[11]['img'] = 'word.gif';
$type[12]['type'] = 'application/octet-stream';
$type[12]['img'] = '.gif';
$type[13]['type'] = 'application/pdf';
$type[13]['img'] = '.gif';
$type[14]['type'] = 'application/postscript';
$type[14]['img'] = '.gif';
$type[15]['type'] = 'application/rtf';
$type[15]['img'] = '.gif';
$type[16]['type'] = 'application/xhtml+xml';
$type[16]['img'] = '.gif';
$type[17]['type'] = 'application/xml';
$type[17]['img'] = '.gif';
$type[18]['type'] = 'application/x-http-php';
$type[18]['img'] = '.gif';
$type[19]['type'] = 'application/x-javascripz';
$type[19]['img'] = '.gif';
// Audio
$type[20]['type'] = 'audio/x-qt-stream';
$type[20]['img'] = '.gif';
$type[21]['type'] = 'audio/x-wav';
$type[21]['img'] = '.gif';
$type[22]['type'] = 'audio/x-midi';
$type[22]['img'] = '.gif';
// Text
$type[23]['type'] = 'text/comma-separated-values';
$type[23]['img'] = '.gif';
$type[24]['type'] = 'text/css';
$type[24]['img'] = '.gif';
$type[25]['type'] = 'text/html';
$type[25]['img'] = '.gif';
$type[26]['type'] = 'text/javascript';
$type[26]['img'] = '.gif';
$type[27]['type'] = 'text/plain';
$type[27]['img'] = '.gif';
$type[28]['type'] = 'text/rtf';
$type[28]['img'] = 'text/xml';
// Video
$type[29]['type'] = 'video/mpeg';
$type[29]['img'] = '.gif';
$type[30]['type'] = 'video/quicktime';
$type[30]['img'] = '.gif';
$type[31]['type'] = 'video/x-msvideo';
$type[31]['img'] = '.gif';
return $type;
}
?>
PHP:
<?
function CheckFileType($FileTypes, $file) {
for ($i = 0; $i < count($FileTypes); $i++) {
$filetype = current($FileTypes[key($FileTypes)]);
if($filetype = $file['type']){
$out = $filetype;
return $out;
break;
}
next($FileTypes);
}
}
?>
Wenn ich die Funktion mal mit echo aufrufe, bekomme ich jedoch immer den mimetyp der Datei ausgegeben, auch wenn dieser Typ garnicht in meinem Typen-Array steht.
Bitte helft mir ...