Hallo,
ich hab vor einiger Zeit mit Eurer Hilfe http://forum.de.selfhtml.org/archiv/2003/11/63283 folgende (einfache) Bildschleuse gebaut. Rufe ich die Datei mit GET-Parameter auf, frägt mein Browser mich nur, ob ich die Datei öffnen oder speichern will. Er erkennt die Datei aber als php und Startet meinen Editor... Dat is nich gut bei nem Filmchen...
Was mach ich da falsch?
Hintergrund: Ich will nen PW-geschätzten Bereich auf meiner Page bauen, auf dem die User Bildchen, Filme, pdf, ppt usw. via Bildschleuse runterziehen können.
ACHTUNG: Ich hab das ganze File mit abgedruckt, obwohl zwischen drin nur verschiedene MIME-Typen stehen. Interessant sind wahrscheinlich nur die ersten und die letzten Zeilen.
Greets Tom1tk
Ach ja, mit Bilder klappt alles sehr gut, da die mein Brwoser auch darstellen kann. PPTs kann er nicht => Also Zahlensalat!
<?php
unset($pfadzumfile); $pfadzumbild=$_GET["file"];//Wird via GET-Anfrage übergeben z.B.?file=video.mpg oder ?file=animation.ppt
if (file_exists($pfadzumfile)){
$bildinfos=getimagesize($pfadzumfile); $bildtypnr=$bildinfos[2];
$contenttype[1]='image/gif'; $contenttype[2]='image/jpeg'; $contenttype[3]='image/png';
$contenttypedatei=""; $contenttypedatei=$contenttype[$bildtypnr]; /* Falls es eine Bilddatei ist, ist $contenttypdatei jetzt gesetzt. Fuer die uebrigen Dateitypen geht es jetzt noch weiter, z.B. mit einer SWITCH/CASE Struktur: */
if ($contenttypedatei=="") // d.h. wenn noch nicht gesetzt: /* Versuchen, den Dateityp anhand der Endigung zu erraten: */ { $endigung=strtolower(strrchr($pfadzumfile,".")); // alles ab dem letzten Punkt switch($endigung){ case".html": $contenttypedatei="text/html"; break; case ".txt": $contenttypedatei="text/plain"; break; case ".doc": $contenttypedatei="application/msword"; break; case ".pdf": $contenttypedatei="application/pdf"; break;
case ".spl": $contenttypedatei="application/futuresplash"; break;
Flash Futuresplash-Dateien
case ".gz": $contenttypedatei="application/gzip"; break;
GNU Zip-Dateien
case ".xls": $contenttypedatei="application/msexcel"; break;
Microsoft Excel Dateien
case ".xla": $contenttypedatei="application/msexcel"; break;
Microsoft Excel Dateien
case ".hlp": $contenttypedatei="application/mshelp"; break;
Microsoft Windows Hilfe Dateien
case ".ppt": $contenttypedatei="application/mspowerpoint"; break;
Microsoft Powerpoint Dateien
case ".ppz": $contenttypedatei="application/mspowerpoint"; break;
Microsoft Powerpoint Dateien
case ".pps": $contenttypedatei="application/mspowerpoint"; break;
Microsoft Powerpoint Dateien
case ".pot": $contenttypedatei="application/mspowerpoint"; break;
Microsoft Powerpoint Dateien
case ".doc": $contenttypedatei="application/msword"; break;
Microsoft Word Dateien
case ".dot": $contenttypedatei="application/msword"; break;
Microsoft Word Dateien
case ".bin": $contenttypedatei="application/octet-stream"; break;
Ausführbare Dateien
case ".exe": $contenttypedatei="application/octet-stream"; break;
Ausführbare Dateien
case ".com": $contenttypedatei="application/octet-stream"; break;
Ausführbare Dateien
case ".dll": $contenttypedatei="application/octet-stream"; break;
Ausführbare Dateien
case ".class": $contenttypedatei="application/octet-stream"; break;
Ausführbare Dateien
case ".oda": $contenttypedatei="application/oda"; break;
Oda-Dateien
case ".pdf": $contenttypedatei="application/pdf"; break;
Adobe PDF-Dateien
case ".ai": $contenttypedatei="application/postscript"; break;
Adobe Postscript-Dateien
case ".eps": $contenttypedatei="application/postscript"; break;
Adobe Postscript-Dateien
case ".ps": $contenttypedatei="application/postscript"; break;
Adobe Postscript-Dateien
case ".rtf": $contenttypedatei="application/rtf"; break;
Microsoft RTF-Dateien
case ".gtar": $contenttypedatei="application/x-gtar"; break;
GNU tar-Archiv-Dateien
case ".php": $contenttypedatei="application/x-httpd-php"; break;
PHP-Dateien
case ".phtml": $contenttypedatei="application/x-httpd-php"; break;
PHP-Dateien
case ".js": $contenttypedatei="application/x-javascript"; break;
serverseitige JavaScript-Dateien
case ".bin": $contenttypedatei="application/x-macbinary"; break;
Macintosh Binärdateien
case ".swf": $contenttypedatei="application/x-shockwave-flash"; break;
Flash Shockwave-Dateien
case ".cab": $contenttypedatei="application/x-shockwave-flash"; break;
Flash Shockwave-Dateien
case ".tar": $contenttypedatei="application/x-tar"; break;
tar-Archivdateien
case ".zip": $contenttypedatei="application/zip"; break;
ZIP-Archivdateien
case ".au": $contenttypedatei="audio/basic"; break;
Sound-Dateien
case ".snd": $contenttypedatei="audio/basic"; break;
Sound-Dateien
case ".aif": $contenttypedatei="audio/x-aiff"; break;
AIFF-Sound-Dateien
case ".aiff": $contenttypedatei="audio/x-aiff"; break;
AIFF-Sound-Dateien
case ".aifc": $contenttypedatei="audio/x-aiff"; break;
AIFF-Sound-Dateien
case ".midi": $contenttypedatei="audio/x-midi"; break;
MIDI-Dateien
case ".mid": $contenttypedatei="audio/x-midi"; break;
MIDI-Dateien
case ".mp2": $contenttypedatei="audio/x-mpeg"; break;
MPEG-Dateien
case ".mp3": $contenttypedatei="audio/x-mpeg"; break;
MPEG-Dateien
case ".ram": $contenttypedatei="audio/x-pn-realaudio"; break;
RealAudio-Dateien
case ".ra": $contenttypedatei="audio/x-pn-realaudio"; break;
RealAudio-Dateien
case ".rpm": $contenttypedatei="audio/x-pn-realaudio-plugin"; break;
RealAudio-Plugin-Dateien
case ".stream": $contenttypedatei="audio/x-qt-stream"; break;
-Dateien
case ".wav": $contenttypedatei="audio/x-wav"; break;
Wav-Dateien
case ".dwf": $contenttypedatei="drawing/x-dwf"; break;
Drawing-Dateien
case ".fif": $contenttypedatei="image/fif"; break;
FIF-Dateien
case ".gif": $contenttypedatei="image/gif"; break;
GIF-Dateien
case ".ief": $contenttypedatei="image/ief"; break;
IEF-Dateien
case ".jpeg": $contenttypedatei="image/jpeg"; break;
JPEG-Dateien
case ".jpg": $contenttypedatei="image/jpeg"; break;
JPEG-Dateien
case ".jpe": $contenttypedatei="image/jpeg"; break;
JPEG-Dateien
case ".tiff": $contenttypedatei="image/tiff"; break;
TIFF-Dateien
case ".tif": $contenttypedatei="image/tiff"; break;
TIFF-Dateien
case ".csv": $contenttypedatei="text/comma-separated-values"; break;
komma-separierte Datendateien
case ".css": $contenttypedatei="text/css"; break;
CSS Stylesheet-Dateien
case ".htm": $contenttypedatei="text/html"; break;
-Dateien
case ".html": $contenttypedatei="text/html"; break;
-Dateien
case ".shtml": $contenttypedatei="text/html"; break;
-Dateien
case ".js": $contenttypedatei="text/javascript"; break;
JavaScript-Dateien
case ".txt": $contenttypedatei="text/plain"; break;
reine Textdateien
case ".rtx": $contenttypedatei="text/richtext"; break;
Richtext-Dateien
case ".rtf": $contenttypedatei="text/rtf"; break;
Microsoft RTF-Dateien
case ".tsv": $contenttypedatei="text/tab-separated-values"; break;
tabulator-separierte Datendateien
case ".wml": $contenttypedatei="text/vnd.wap.wml"; break;
WML-Dateien (WAP)
case ".wmlc": $contenttypedatei="application/vnd.wap.wmlc"; break;
WMLC-Dateien (WAP)
case ".wmls": $contenttypedatei="text/vnd.wap.wmlscript"; break;
WML-Scriptdateien (WAP)
case ".wmlsc": $contenttypedatei="application/vnd.wap.wmlscriptc"; break;
WML-Script-C-dateien (WAP)
case ".mpeg": $contenttypedatei="video/mpeg"; break;
MPEG-Dateien
case ".mpg": $contenttypedatei="video/mpeg"; break;
MPEG-Dateien
case ".mpe": $contenttypedatei="video/mpeg"; break;
MPEG-Dateien
case ".qt": $contenttypedatei="video/quicktime"; break;
Quicktime-Dateien
case ".mov": $contenttypedatei="video/quicktime"; break;
Quicktime-Dateien
case ".avi": $contenttypedatei="video/x-msvideo"; break;
Microsoft AVI-Dateien
case ".movie": $contenttypedatei="video/x-sgi-movie"; break;
Movie-Dateien
case ".wrl": $contenttypedatei="x-world/x-vrml"; break;
VRML-Dateien
default: $contenttypedatei="application/octet-stream"; break; }//Ende Switch Case struktur }//Ende if Abfrage ob ContentTypeDatei=""
header("Content-Type: $contenttypedatei"); readfile($pfadzumbild); }//Ende Abfrage, ob pfadzumbild="" else{
Print "File gibts net"; }
?>