Hallo,
erst einmal ein ganz großes Lob an das Forum, hat mir schon bei etlichen Fragen weiterhelfen können.
Nun zu meiner Frage:
ich habe ein Downloadskript geschrieben, welches Daten (hier pdf files) auf dem Server anbietet, die sonst nicht zum Download stehen würden. Davor muss der User jedoch eine Art Einverständniserklärung abgeben (cbox).
Nun habe ich aber folgendes Problem:
Wenn ich das pdf Dokument öffne, und es danach speichern will, heißt das Dokument test.pdf (orientiert sich an test.php bzw je nachdem wie das php file heißt).
Wenn ich das pdf Dokument als Content-Disposition: attachment angebe, wird das Dokument mit korrektem Namen zum Öffnen/Download angeboten, jedoch dann entsprechend im Adobe Reader geöffnet (nicht im Browser Fenster).
Nur um es nochmal zu verdeutlichen, es geht hier nur um den Dateinamen, wenn man das Dokument im Browser inline anzeigen lässt, und von dort das Dokument speichern will.
Ich danke im Voraus \o/
erst einmal ein ganz großes Lob an das Forum, hat mir schon bei etlichen Fragen weiterhelfen können.
Nun zu meiner Frage:
ich habe ein Downloadskript geschrieben, welches Daten (hier pdf files) auf dem Server anbietet, die sonst nicht zum Download stehen würden. Davor muss der User jedoch eine Art Einverständniserklärung abgeben (cbox).
Nun habe ich aber folgendes Problem:
Wenn ich das pdf Dokument öffne, und es danach speichern will, heißt das Dokument test.pdf (orientiert sich an test.php bzw je nachdem wie das php file heißt).
Wenn ich das pdf Dokument als Content-Disposition: attachment angebe, wird das Dokument mit korrektem Namen zum Öffnen/Download angeboten, jedoch dann entsprechend im Adobe Reader geöffnet (nicht im Browser Fenster).
Nur um es nochmal zu verdeutlichen, es geht hier nur um den Dateinamen, wenn man das Dokument im Browser inline anzeigen lässt, und von dort das Dokument speichern will.
PHP-Code:
<?php
$download = $_GET['download'];
if (!isset($_POST['cbox'])) { die("You have to agree first!"); }
$basedir = "\dir\subdir";
$filelist = array(
"file1" => "\file1.pdf",
"file2" => "\file2.pdf",
"file3" => "\file3.pdf",
);
if (!isset($filelist[$download])) { die( "File not available"); }
$filename = $basedir."$filelist[$download]";
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Content-Type: application/pdf");
header("Content-Disposition: inline; filename=".basename($filename));
readfile($filename);
?>
Kommentar