Tom1tk: Daten via header senden

Beitrag lesen

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"; }

?>