fpassthru in OOP function: Datei aus geschütztem Verzeichnis lesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • fpassthru in OOP function: Datei aus geschütztem Verzeichnis lesen

    Hallo,
    ich möchte aus einem geschützten Verzeichnis Dateien auslesen.
    Das geht wunderbar, wenn man einfach über eine Dateiverbindung: getTheFile.php?file=Dateiname die jeweilige Datei auruft.

    getTheFile wäre dann:

    PHP-Code:
    $ext pathinfo$_GET['file'] );
       switch(
    strtolower($ext['extension'])) {
       case 
    "gif":
       
    $mime_type "image/gif";
       break;
       case 
    "jpeg":
       
    $mime_type "image/jpeg";
       break;
       case 
    "jpg":
       
    $mime_type "image/jpeg";
       break;
       case 
    "png":
       
    $mime_type "image/png";
       break;
       }
        
       
    header("Content-type: ".$mime_type."");
       
    $si fopen("../image_upload/".$_GET['file'], "rb");
       
    fpassthru($si); 
    Nun habe ich ein sehr komplexes Loginsystem, das wenn man diese Datei schützt einfach sehr lange arbeitet.

    Ich suche daher eine Lösung, die das Auslesen über eine in einer Classe definierte Funktion bewerkstelligt: also so:

    PHP-Code:
    class content {
    function 
    passThru ($image) {    
       
     
       
    $si fopen("./image_upload/".$image"rb");
       
       
    fgets($si);
       
       return 
    fpassthru($si);
     
     }


    Wenn ich das mache, erscheinen Sonderzeichen ohne ende die mit

    ����JFIF��>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ��C    $.' ",#(7),0144

    beginnen.

    Gibt es da eine Lösung?

  • #2
    Du hast den header() nicht gesetzt.

    Warum verwendest du nicht einfach readfile()?

    Kommentar


    • #3
      ja ich habe es gerade probiert,

      leider soll das script hintergrundbilder laden und steht somit nicht am Anfang der Datei, mit einem header ergibt sich da ein Problem.

      PHP-Code:

      function passThru ($image) {    

         
      header("Content-type: image/jpeg");
         return 
      readfile("./image_upload/".$image);
       
       }

      // html 

      if($type == "image_upload")
      $image $this -> passThru($value);

      echo 
      "style=\"background-image:url(".$image.");"

      Kommentar


      • #4
        Zitat von sanktusm Beitrag anzeigen
        leider soll das script hintergrundbilder laden und steht somit nicht am Anfang der Datei, mit einem header ergibt sich da ein Problem.
        Du kannst pro Response nur einen Datentyp zurückgeben. Entweder HTML oder Bilddaten. Du musst dich entscheiden.

        Zitat von sanktusm Beitrag anzeigen
        $image = $this -> passThru($value);

        echo "style=\"background-image:url(".$image.");";
        In url() muss eine URL stehen und keine Binärdaten.

        HTML-Code:
        <div style="background-image: url(lade_bild.php?id=123);" />

        Kommentar

        Lädt...
        X