Hallo,
Ich bin heute die ganze Zeit an einem Problem, welches ich nicht gelöst bekomme.
ich habe ein Downloadscript, mit dem ich Leuten Dateien verschiedenster Art anbiete. Unter anderem sind das PDF- und Word-Dateien. Allerdings gibt es damit ein Problem.
Wenn man die Datei (beim Downloaddialog) öffnet, kommt bei jeder Datei z.B. PDF die Fehlermeldung, dass die Datei nicht existiere. Wenn man statt auf Öffnen auf Speichern klickt, und diese vom Rechner öffnet, dann funktioniert dies jedoch einwandfrei.
Das ist der Codeausschnitt:
Lasse ich mir die Variablen ausgeben, so erhalte ich dieses Ergebnis:
$basedir => /home/*****/www/wb/www.*****.de/htdocs/downloads
$filename => /home/*****/www/wb/www.*****.de/htdocs/downloads/Testtermine_WS_2007_.pdf
$save_as_name => Testtermine_WS_2007_.pdf
Die Datei ist in dem Ordner vorhanden und kann manuell geöffnet werden.
Also wenn ich www.*****.de/downloads/Testtermine_WS_2007_.pdf aufrufe, dann klappt es auch. Warum kann ich mir nicht erklären.
Ich bin heute die ganze Zeit an einem Problem, welches ich nicht gelöst bekomme.
ich habe ein Downloadscript, mit dem ich Leuten Dateien verschiedenster Art anbiete. Unter anderem sind das PDF- und Word-Dateien. Allerdings gibt es damit ein Problem.
Wenn man die Datei (beim Downloaddialog) öffnet, kommt bei jeder Datei z.B. PDF die Fehlermeldung, dass die Datei nicht existiere. Wenn man statt auf Öffnen auf Speichern klickt, und diese vom Rechner öffnet, dann funktioniert dies jedoch einwandfrei.
Das ist der Codeausschnitt:
PHP-Code:
$filename = $row['download_filename'];
$basedir = $_SERVER["DOCUMENT_ROOT"]."/downloads";
$filename = sprintf("%s/%s", $basedir, $filename);
$save_as_name = basename($filename);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$save_as_name\"");
readfile($filename);
exit;
Lasse ich mir die Variablen ausgeben, so erhalte ich dieses Ergebnis:
$basedir => /home/*****/www/wb/www.*****.de/htdocs/downloads
$filename => /home/*****/www/wb/www.*****.de/htdocs/downloads/Testtermine_WS_2007_.pdf
$save_as_name => Testtermine_WS_2007_.pdf
Die Datei ist in dem Ordner vorhanden und kann manuell geöffnet werden.
Also wenn ich www.*****.de/downloads/Testtermine_WS_2007_.pdf aufrufe, dann klappt es auch. Warum kann ich mir nicht erklären.
Kommentar