header / fpassthru
Martin
- php
0 ulimativ0 Martin
0 MudGuard0 Martin
0 Alexander Foken
Hallo Leute,
ich möchte über ein Skript mittels header eine PDF-Datei downloaden:
<?php
require("../../../connect.php");
$filename = "ReferenzF-2083_2.pdf";
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Transfer-Encoding: binary");
$fp = fopen("$filename", "r");
fpassthru($fp);
?>
Anstelle des Downloadfensters erscheint die Datei jedoch mit lauter Hieroglyphen. Kann mir jemand sagen, wie ich das machen muss, damit ich die Datei downloaden kann?
Martin
Hallo Martin,
$fp = fopen("$filename", "r");
fpassthru($fp);
Probiers mal mit:
readfile ($filename);
anstatt den zwei zeilen oben.
Good Luck
Uli
Good Luck
Uli
Danke, hat leider nichts gebracht, immer noch das gleiche Problem.
Martin
Hi,
Anstelle des Downloadfensters erscheint die Datei jedoch mit lauter Hieroglyphen. Kann mir jemand sagen, wie ich das machen muss, damit ich die Datei downloaden kann?
Runtergeladen wird es doch (sonst könnte es nicht angezeigt werden), nur macht der Browser nicht das, was Du willst (nämlich den Speichern unter-Dialog).
Welcher Browser ist es denn?
cu,
Andreas
Welcher Browser ist es denn?
MS IE 6.0
Grüsse
Martin
Moin Moin !
header("Content-type: application/octet-stream");
Falscher MIME-Type. Application/pdf ist für PDF-Dateien reserviert.
header("Content-Disposition: attachment; filename=$filename");
Laß die filename-Erweiterung weg ("Content-Disposition: attachment"), hänge stattdessen den gewünschten Namen an die URL an (http://www.example.com/php/download.php/superduper.pdf?action=getpdf&pdf=superduper). Das ist zwar nicht ganz so schön, funktioniert aber meiner Erfahrung nach besser.
header("Content-Transfer-Encoding: binary");
Was soll das? Ich halte die Angabe für unnötig.
Alexander
Moin Moin !
header("Content-type: application/octet-stream");
Falscher MIME-Type. Application/pdf ist für PDF-Dateien reserviert.
Ich habe da das Problem, dass später verschiedene Dateitypen gedownloaded werden sollen (sxw, xls, pdf....). Gibt es da auch eine Möglichkeit?
header("Content-Disposition: attachment; filename=$filename");
Laß die filename-Erweiterung weg ("Content-Disposition: attachment"), hänge stattdessen den gewünschten Namen an die URL an (http://www.example.com/php/download.php/superduper.pdf?action=getpdf&pdf=superduper). Das ist zwar nicht ganz so schön, funktioniert aber meiner Erfahrung nach besser.
Das ist mir nicht ganz klar, wie man hier die Varianle $filename einbindet und mit einem PHP-Skript aufruft.
header("Content-Transfer-Encoding: binary");
Was soll das? Ich halte die Angabe für unnötig.
Alexander
Martin
Moin Moin !
header("Content-type: application/octet-stream");
Falscher MIME-Type. Application/pdf ist für PDF-Dateien reserviert.
Ich habe da das Problem, dass später verschiedene Dateitypen gedownloaded werden sollen (sxw, xls, pdf....). Gibt es da auch eine Möglichkeit?
http://www.iana.org/assignments/media-types/ ist die _verbindliche_ Quelle für MIME-Typen.
BTW: heruntergeladen finde ich wesentlich eleganter als gedownloaded.
header("Content-Disposition: attachment; filename=$filename");
Laß die filename-Erweiterung weg ("Content-Disposition: attachment"), hänge stattdessen den gewünschten Namen an die URL an (http://www.example.com/php/download.php/superduper.pdf?action=getpdf&pdf=superduper). Das ist zwar nicht ganz so schön, funktioniert aber meiner Erfahrung nach besser.Das ist mir nicht ganz klar, wie man hier die Varianle $filename einbindet und mit einem PHP-Skript aufruft.
Im Link zum Download, also genau eine Seite vorher. Oder Du baust eine "click here if download does not start"-Seite dazwischen, die genau dann erscheint, wenn keine PATH_INFO (Text hinter .php in meinem Beispiel) da ist.
Alexander