PHP HTML-Datei aus geschützen Verzeichnis aufrufen

Cumulonimbus

Lt. Junior Grade
Dabei seit
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?
 

ignator

Ensign
Dabei seit
Juli 2004
Beiträge
232
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); 

}
?>
 

Cumulonimbus

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Feb. 2007
Beiträge
303
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:
Top