Hallo,
ich habe mir einen kleinen Uploader geschrieben.
Soweit auch alles gut. Damit man nicht direkt auf Verzeichnis zugreift,
um das Verzeichnis für außenstehende geheim zu halten, habe ich mir ein kleines Script geschrieben.
Ausgeben tut das Script auch alles ohne Probleme.
Leider lädt der Browser es aber durchgehend, auch wenn es schon zu sehen ist. (Ich bleibe mal bei Bildern)
Bindet man das Bild irgendwo ein, z.B. <img src="http://example.de/?l=code">,
lädt der Browser das Bild, zeigt es an und sobald dieser fertig mit laden ist (laut Lade-Icon),
verschwindet das Bild wieder. So als ob es nicht existieren würde.
Ich bin echt überfragt. Hat jemand eine Idee woran es liegen könnte?
ich habe mir einen kleinen Uploader geschrieben.
Soweit auch alles gut. Damit man nicht direkt auf Verzeichnis zugreift,
um das Verzeichnis für außenstehende geheim zu halten, habe ich mir ein kleines Script geschrieben.
Ausgeben tut das Script auch alles ohne Probleme.
Leider lädt der Browser es aber durchgehend, auch wenn es schon zu sehen ist. (Ich bleibe mal bei Bildern)
Bindet man das Bild irgendwo ein, z.B. <img src="http://example.de/?l=code">,
lädt der Browser das Bild, zeigt es an und sobald dieser fertig mit laden ist (laut Lade-Icon),
verschwindet das Bild wieder. So als ob es nicht existieren würde.
Ich bin echt überfragt. Hat jemand eine Idee woran es liegen könnte?
PHP:
<?php
function show_file($code){
if(dbanz('file_uploader', 'code', $code) == 1){
$type = dbout('mime', 'code', $code, 'file_uploader');
$file_path = 'uploads/'.dbout('filename', 'code', $code, 'file_uploader').'.'.dbout('mime', 'code', $code, 'file_uploader');
$file_timestamp = dbout('timestamp', 'code', $code, 'file_uploader');
if($type == 'png') $type = 'image';
if($type == 'jpg') $type = 'image';
if($type == 'jpeg') $type = 'image';
if($type == 'gif') $type = 'image';
if($type == 'jpe') $type = 'image';
if($type == 'bmp') $type = 'image';
if($type == 'ico') $type = 'image';
if(file_exists($file_path)){
// Header Informations
header('Content-length: '.filesize($file_path));
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
header("Expires: " . gmdate("D, d M Y H:i:s", $file_timestamp) . " GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header("Pragma: no-cache");
switch($type){
case 'mp3':
header('Content-type: audio/mpeg');
readfile($file_path);
exit();
break;
case 'm4a':
header('Content-type: audio/x-m4a');
readfile($file_path);
exit();
break;
case 'wav':
header('Content-type: audio/x-wav');
readfile($file_path);
exit();
break;
case 'acc':
header('Content-type: audio/acc');
readfile($file_path);
exit();
break;
case 'ogg':
header('Content-type: application/ogg');
readfile($file_path);
exit();
break;
case 'mp4':
header('Content-type: video/mp4');
readfile($file_path);
exit();
break;
case 'avi':
header('Content-type: video/avi');
readfile($file_path);
exit();
break;
case 'qt':
header('Content-type: video/quicktime');
readfile($file_path);
exit();
break;
case 'mov':
header('Content-type: video/quicktime');
readfile($file_path);
exit();
break;
case 'txt':
header("Content-Type: text/plain");
readfile($file_path);
exit();
break;
case 'pdf':
header("Content-Type: application/pdf");
readfile($file_path);
exit();
break;
case 'image':
$type = dbout('mime', 'code', $code, 'file_uploader');
if($type == 'jpe') $type = 'jpeg';
if($type == 'jpg') $type = 'jpeg';
switch($type){
case'jpeg':
$img = imagecreatefromjpeg($file_path);
header('Content-type: image/jpeg');
imagejpeg($img);
imagedestroy($img);
break;
case'png':
$img = imagecreatefrompng($file_path);
header('Content-type: image/png');
imagepng($img);
imagedestroy($img);
break;
case'gif':
$img = imagecreatefromgif($file_path);
header('Content-type: image/gif');
imagegif($img);
imagedestroy($img);
break;
case'bmp':
$img = imagecreatefromwbmp($file_path);
header('Content-type: image/vnd.wap.wbmp');
imagewbmp($img);
imagedestroy($img);
break;
} /* switch */
exit();
break;
default:
$error = 'Die gewünschte Datei kann nicht angezeigt werden!';
break;
}
} else { /* if(file_exists([...])) */
$error = 'Datei existiert nicht!';
}
} else { /* if(dbanz([...])) */
$error = 'Die gewünschte Datei existiert nicht!';
}
return sondertext($error);
}
?>