Zum Inhalt springen

PHP-Downloadscript


Empfohlene Beiträge

hi,

ich habe mir ein Download-Script gebastelt, zum teil aus Inet Quellen, zum Teil selber.

Anfangs hatte ich das Problem das er alle Dateien als zwangs-Download behandelt...

mit

$header="filename=".$filename.";";

anstatt

$header="Content-Disposition: attachment; filename=".$filename.";";

lädt er zumindest Bilder jetzt wieder in einem browserfenster, wie es seinsollte...aber einfache txt Dateien werden immernoch zwangsgeladen...

// Mime Type
switch( $file_extension )
{
case "txt": $ctype="application/txt"; break;
case "pdf": $ctype="application/pdf"; break;
case "zip": $ctype="application/zip"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;

default: $ctype="application/force-download";
}

// Write Header
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");

// Header: Mime Type
header("Content-Type: ".$ctype);

// "Content-Disposition: attachment; filename=".$filename;
header("filename=".$filename);
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$len);

// Content-Output
@readfile($file);[/PHP]

ich wollte eigentlich auf eine Weiche verzichten die dann z.B. echo $content;

oder so macht...k.A. wie es bei weiteren Dateitypen aussieht...

ich kenne die sicherheitsbedenken bei solchen Scripts :) aber das habe ich abgefangen...hab' jetzt aber nur den relevanten Teil des Scripts gepostet

Link zu diesem Kommentar
Auf anderen Seiten teilen

Weißt du wo das festgelegt ist ?

Das hat mit PHP nichts zu tun. Du solltest eher bei HTTP-Spezifikationen suchen, da "Inline" (frei übersetzt: drinnen) und "attachement" (Anhang) auch andersow gibt. E-Mail ist ein gutes Beispiel. Du kannst da Bilder nämlich auch Inline (also der Empfänger sieht sie, wenn er die Nachricht liest) oder als Attachement (das Bild ist nur als Anhang dabei) verschicken.

EDIT:

Mit "header" änderst/erweiterst du (wie es der Name schon sagt) nur den HTTP-Header, der von Server abgeschickt wird.

EDIT2:

Content-Disposition is an extension to the MIME protocol that describes the content of the message and provides instructions about how the content is to be displayed.

http://www.ietf.org/rfc/rfc2183.txt

http://www.ietf.org/rfc/rfc1806.txt

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...