php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Download - Ja ich weiss...


 
yezariel
13-02-2003, 16:17 
 
Hallo!

Eins gleich vorweg: Ja, ich habe gesucht, ich habe auch einiges gefunden aber mein Script geht trotzdem nicht...

Folgendes Problem. Ich habe ein PHP-Script, in dem ich einen Link ausgebe. Wenn man auf diesen Link klickt, öffnet sich ein kleines Fenster in dem folgendes PHP-Script namens dl.php dann abläuft:



session_start();

$dl=$_SESSION['dl'];
$id=$_GET[id];

if($dl!="x"){
echo "Keine Berechtigung zum Download!";
exit;
}

include("../inc/db_var.php");
include("../inc/db_class.php");
include("../inc/db_zugriff.php");

$download=$db_zugriff->query_first("select * from ph_downloads where d_id=$id");

$disp="Content-Disposition: attachment; filename=../".$download[d_pfad];
header("Content-type: application/pdf");
header($disp);
readfile('../'.$download[d_pfad]);



So. In $download[d_pfad] steht der Pfad zur Datei. Die Variable ist auch gefüllt und da steht z.B. "dl/datei1.pdf" drin. Wenn das Script gestartet wird, wird auch schön der Speichern-Dialog aufgerufen aber wenn ich Speichern drücke, bekomme ich folgende Fehlermeldung:

"dl.php?id=6 von rechner kann nicht übertragen werden. Die Internetseite konnte nicht geöffnet werden. Sie ist entweder nicht verfügbar oder konnte nicht gefunden werden......."

Ich will ja aber dl.php gar nicht downloaden sondern die PDF-Datei aus meiner DB. Weiss einer was das soll?

Danke!

Gruss

Yezariel

 
yezariel
13-02-2003, 17:02 
 
Hat keine 'ne Idee??? :dontknow:

 
Günni
13-02-2003, 17:10 
 
Schau mal hier nach
http://www.dclp-faq.de/q/q-datei-download.html

 
yezariel
13-02-2003, 17:15 
 
Hallo!

Danke für die Antwort, aber den Link kannte ich schon. :)

Mein Problem ist wohl die Session! Ich hab jetzt die Session mal weggelassen und dann funktioniert es. Fast... :) Das einzige Problem ist jetzt noch der Dateiname des PDF's. Hier mein neues Script:


$id=$_GET[id];

include("../inc/db_var.php");
include("../inc/db_class.php");
include("../inc/db_zugriff.php");

$id-=5;
$download=$db_zugriff->query_first("select * from ph_downloads where d_id=$id");

header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=".$download[d_pfad]);
readfile('../'.$download[d_pfad]);



Die Datei wird jetzt auf der Festplatte gespeichert aber als Name wird der Name meines PHP-Scripts (dl.pdf) anstatt der Name der PDF-Datei ausgegeben. Hat jemand eine Ahnung was ich falsch mache?

Danke!

Gruss

Yezariel!

 
Günni
13-02-2003, 17:17 
 
header("Content-Disposition: attachment; filename=\"Dateiname.pdf\"");

 
yezariel
13-02-2003, 17:34 
 
Hi!

Nee, das war's auch nicht aber deine Antwort hat mich auf den Fehler gebracht. :) In meiner Variable war der Pfad zum PDF gespeichert und das scheint nicht zu funktionieren. Ich habe jetzt noch ein Tabellenfeld angelegt in dem nur der Dateiname steht und hänge das dann an den header-Befehl dran und dann geht's!! :) JIPIEH!

VIELEN DANK!!

Hier nochmal für alle die's interessiert das Script:


$id=$_GET[id];

$download=$db_zugriff->query_first("select * from ph_downloads where d_id=$id");

header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=$download[d_datei]");
readfile('../'.$download[d_pfad]);



Gruss

Yezariel


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:31 Uhr.