Aufrufen eines Image Files außerhalb des Document Roots
Hallo zusammen,
ich habe eine Upload Funktion gebaut, mit der ein User ein PDF oder Images Bild hochladen kann. Dieses Dokument verschiebe ich anschließend in einen Ordner, der außerhalb des WebRoots liegt, damit diese Dateien nicht für jeden zugänglich sind.
Nun stellt sich mir aber die Frage, wie ich genau diese Dateien innerhalb von PHP wieder anzeigbar machen kann.
Über folgenden Weg habe ich das bisher versucht:
Wie schon zu erkennen ist, muss die Lösung auch bei mehreren Images/PDF´s auf einer Seite funktionieren.
Die Tatsache, dass ich das zwar als BASE64_Encoded einlesen kann ist zwar net, hilft allerdings wenig, wenn dafür noch ein header gesendet werden muss, da zu diesem Zeitpunkt bereits die Header Informationen ausgetauscht sind.
Was wäre aus eurer Sicht der beste Weg um das zu lösen?
ich habe eine Upload Funktion gebaut, mit der ein User ein PDF oder Images Bild hochladen kann. Dieses Dokument verschiebe ich anschließend in einen Ordner, der außerhalb des WebRoots liegt, damit diese Dateien nicht für jeden zugänglich sind.
Nun stellt sich mir aber die Frage, wie ich genau diese Dateien innerhalb von PHP wieder anzeigbar machen kann.
Über folgenden Weg habe ich das bisher versucht:
$docname = $characters["resource"]['signedparrentdoc'];
foreach ($characters["resource"] as $key=>$value)
if(substr($docname, -4) == '.pdf'){
$doc = "<script>PDFObject.embed('".$PDF_Folder."prtdocs/'".$docname.", '.document');</script>";
}
else {$doc = "
<img src='".fopen($PDF_Folder."prtdocs/".$docname, "r")."'/>";}
Wie schon zu erkennen ist, muss die Lösung auch bei mehreren Images/PDF´s auf einer Seite funktionieren.
Die Tatsache, dass ich das zwar als BASE64_Encoded einlesen kann ist zwar net, hilft allerdings wenig, wenn dafür noch ein header gesendet werden muss, da zu diesem Zeitpunkt bereits die Header Informationen ausgetauscht sind.
Was wäre aus eurer Sicht der beste Weg um das zu lösen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 379614
Url: https://administrator.de/contentid/379614
Ausgedruckt am: 25.11.2024 um 00:11 Uhr
1 Kommentar
Hallo,
dafür schaffst Du Dir eine download-Funktion.
Der Link könnte z.B.
Du kannst das Data-Verzeichnis aber auch im Web-Bereich lassen
Du musst den Parameter "richtig" prüfen.
Sonst nutzt bald einer
Stefan
dafür schaffst Du Dir eine download-Funktion.
../web/html/download.php (doc root)
../web/data/test1.pdf
Der Link könnte z.B.
www.firma.de/download.php?file=test1.pdf
lauten.Du kannst das Data-Verzeichnis aber auch im Web-Bereich lassen
/html/data/test1.pdf
und per htaccess den Zugriff von extern verbieten.Du musst den Parameter "richtig" prüfen.
Sonst nutzt bald einer
?file=../../../etc/users
als Parameter.Stefan