'.tar.gz, .tgz',
'application/x-zip-compressed' => '.zip',
'application/x-tar' => '.tar',
'text/plain' => '.html, .php, .txt, .inc (etc)',
'image/bmp' => '.bmp, .ico',
'image/gif' => '.gif',
'image/pjpeg' => '.jpg, .jpeg',
'image/jpeg' => '.jpg, .jpeg',
'image/png' => '.png',
'application/x-shockwave-flash' => '.swf',
'application/msword' => '.doc',
'application/vnd.ms-excel' => '.xls',
'application/octet-stream' => '.exe , .fla (etc)'
);
$zugelassene_mimetypen = array('image/gif','image/pjpeg','image/jpeg','image/png');
// Validierung --------------------------------------------------------------------
$dateigroesse = $_FILES['datei']['size'];
$dateityp = $_FILES['datei']['type'];
$tmpdateiname = $_FILES['datei']['tmp_name'];
$dateiname = $_FILES['datei']['name'];
if ($_FILES['datei']['size']==0)
{
// Fehlermeldung, falls die Datei nichts enthaelt
$meldung = 'Datei ist leer (max. '.($max_size / 1024).' KByte)';
}
else if ($_FILES['datei']['size'] > $max_size)
{
// Fehler, falls die Dateigroesse die vorgegebene Maximal-Groesse ueberschreitet
$meldung = 'Datei ist zu gross (max. '.($max_size / 1024).' KByte)';
}
else if (!in_array($_FILES['datei']['type'], $zugelassene_mimetypen))
{
// Fehler, falls die Datei keinem der vorgegebenen Typen entspricht
$meldung = 'Falsches Datei-Format. Nur folgende Formate sind erlaubt:\n
';
foreach ($zugelassene_mimetypen as $erlaubter_typ)
{
$meldung .= "\n- " . $mime_typen[$erlaubter_typ] . ' (' . $erlaubter_typ . ')
';
}
$meldung .= "\n
";
}
else
{ // die Datei wird ausgemessen;
// Breite und Hoehe kommen in die Variablen $breite und $hoehe
$groesse = GetImageSize($_FILES['datei']['tmp_name']);
$breite = $groesse[0];
$hoehe = $groesse[1];
if ($breite > $max_bildbreite || $hoehe > $max_bildhoehe)
{
// Fehler, falls die Datei zu breit oder zu hoch
$meldung = 'Datei ist zu breit bzw. zu hoch (maximal '.$max_bildbreite.' x '.$max_bildhoehe.' Pixel)';
}
if (!in_array($groesse['mime'], $zugelassene_mimetypen))
{
// Fehler, falls mit GetImageSize()
// ein nicht zugelassenen mime-type gefunden wird,
// zB wenn 'abc.doc' umbenannt wurde zu 'abc.jpg'
$meldung = 'Spoofed mime-type - so nicht mein Lieber !';
}
}
// Ende des Huerdenlaufs: Die Datei wird vom tmp-Verzeichnis
// des Web-Servers ins Zielverzeichnis verschoben und benannt (z.B. 'php3E.tmp' zu 'demo.gif').
// Die Variable $ok wird auf true gesetzt und sorgt so spaeter
// dafuer, dass das hochgeladene Bild auf der Seite angezeigt wird.
if ($meldung == '')
{
move_uploaded_file($_FILES['datei']['tmp_name'], $pfad.$_FILES['datei']['name']);
$meldung = 'Der Bild-Upload hat geklappt.';
$ok = true;
}
}
?>
File-Upload mit PHP
'.$meldung.'';
echo 'Hier die Werte der 4 $_FILES[]-Variablen:
';
echo '- Name der Datei auf dem User-PC: '.$_FILES['datei']['name'].'
= $_FILES[\'datei\'][\'name\'] ';
echo '- Datei-Typ: '.$_FILES['datei']['type'].'
$_FILES[\'datei\'][\'type\'] ';
echo '- Temporärer Name auf dem Server: '.$_FILES['datei']['tmp_name'].'
= $_FILES[\'datei\'][\'tmp_name\'] ';
echo '- Datei-Grösse: '.$_FILES['datei']['size'].'
= $_FILES[\'datei\'][\'size\']
';
echo "\n";
print_r($_FILES);
echo "
\n\n";
if (isset($groesse))
{
echo '...und die Werte des Array $groesse (GetImageSize):';
echo "\n";
print_r($groesse);
echo "
\n\n";
}
}
if ($ok)
{
echo '';
}
?>
Bild-Datei auf den Server hochladen: