PHP HTML-Datei aus geschützen Verzeichnis aufrufen

Cumulonimbus

Lt. Junior Grade
Registriert
Feb. 2007
Beiträge
303
Hallo,

zum Download von PDF-Daten die in einem geschützten Ordner liegen verwende ich folgenden Code, der hervorragen funktioniert.

PHP:
<?php

/*echo $_POST["filename"]; 
echo $_POST["filepath"]; */ 
session_cache_limiter("must-revalidate");
session_start();
sleep(3);
$filepath = $_POST["filepath"];
$filename = $_POST["filename"];
header('Content-Description: PDF Download');
header('Content-disposition: attachment; filename='.$filename);
header('Content-type: application/octet-stream' );
header('Content-type: application/pdf' );
/*header('Content-Length: '. filesize($filepath.$filename));*/
header('Content-Transfer-Encoding: binary');
header('Pragma: no-cache');
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
readfile($filename);
exit;
?>

Kann über diese Art und Weise auch eine HTML-Datei aus einem geschützten Ordner aufgerufen werden?
 
hast du es noch nicht getestet? geht doch schnell...

generell kann man sagen, dass php scripte die im gleichen domainstamm liegen generell auf dateien zugreifen dürfen. lediglich direkte aufrufe oder bots werden geblockt.

hier ein bsp, dass bei mir immer ganz gut läuft:
Code:
<?php 
if(!empty($_GET["file"])) {
   $datei = $_GET["file"];
  

header("Cache-Control: public");
header("Content-Description: File Transfer");
header('Content-disposition: attachment; filename='.basename($datei));
header("Content-Type: application/pdf");
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($datei));
readfile($datei); 

}
?>
 
ignator schrieb:
hast du es noch nicht getestet?

Ich habe soweit hinbekommen, dass ich den Contenttype auf text/html geändert hab. Jetzt erscheint aber immer das Download-Fenster "Speichern unter". Wie bekomme ich das hin, dass das File direkt im Browser aufgerufen wird?

Edit:

Auskommentieren:

/*header('Content-disposition: attachment; filename='.$filename);*/

Damit wird die Datei sofort im Browser angezeigt. Yes.
 
Zuletzt bearbeitet:
Zurück
Oben