Original geschrieben von asp2php
er kann aber auch die Zeile 42 löschen, funz genauso gut
er kann aber auch die Zeile 42 löschen, funz genauso gut
// Pseudocode
a/ Überprüfung, ob User member ist, wenn ja weiter mit b/, wenn nein weiter mit z/
b/ entsprechende header senden
c/ PDF-Datei anhand para-Auswertung mit fopen öffen und den Inhalt auslesen und wieder schliessen
d/ Inhalt per echo ausgeben
e/ Script beenden
z/ Beschimpfung oder sonst was ausgeben
<?php
/**
* sendfile.php
*
* Senden von Dateien aus geschützten Verzeichnissen
*
* Aufruf: sendfile.php?filename.ext
*/
// Authentifizierung prüfen - wie man´s will...
//require("auth.inc.php");
// Pfad zum Verzeichnis mit unseren Dateien
$strFileDir="/home/adresse.de/www/secure/"; // Slash am Ende nicht vergessen
$strRequestedFile = basename($_GET["file"]); // SICHERHEIT: basename ist wichtig
// Wurde eine file übergeben?
if ($strRequestedFile) {
$strFilePath = $strFileDir.$strRequestedFile;
// existiert die Datei?
if (file_exists($strFilePath)) {
$intFilesize = filesize($strFilePath);
/*
* Header senden, kein Caching
*/
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") ." GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
header("Cache-Control: post-check=0, pre-check=0");
header("Content-Type: application/pdf");
header("Content-Length: $intFilesize");
header("Content-Disposition: attachment; filename=\"$strRequestedFile\"");
header("Content-Description: PHP Generated Data");
/**
* Ausgabe der Datei in Blöcken von 4KB
*/
$fd = fopen ($strFilePath, "rb"); // "rb" statt nur "r" ist für Windows-Systeme wichtig!!!
while(!feof($fd)) {
echo fread($fd,4096);
}
fclose ($fd);
} else {
// Datei wurde nicht gefunden
echo "Die Datei ".$strRequestedFile." wurde leider nicht gefunden.";
}
} else {
// Es wurde keine id übergeben
echo "Es wurde leider keine Datei übergeben.";
}
?>
Kommentar