Ankündigung

Einklappen
Keine Ankündigung bisher.

Bilder download nicht anzeigen

Einklappen

Neue Werbung 2019

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

  • Bilder download nicht anzeigen

    Hallo zusammen,

    ich habe mal wieder ein kleines Problemchen.

    Ich will die Bilder meiner Galerie auch zum Download anbieten, indem man auf das Bild klickt und dann soll sich die Dialogbox "Speichern Unter" öffnen.

    Dazu habe ich gegoogelt und folgender Code gefunden:

    PHP-Code:
    <?php 
     
        $path 
    $_GET['path'];
        
    $file $_GET['file'];
        
    $name $_GET['name'];
        
        
    //$path = './fotogallerie/alben/01_Pfadfinder/2007_Landesjamboree_(Lars)/';
        //$file = 'DSCF0783.resized.jpg';
         
        
    header('Content-Description: File Transfer'); 
        
    //header('Content-Type: application/octet-stream'); 
        
    header('Content-type: '.mime_content_type($path $file)); 
        
    //header('Content-Disposition: attachment; filename="' . $name . '"');
        
    header('Content-Disposition: attachment; filename="' $file  '"'); 
        
    readfile$path $file ); 

    ?>
    Das geht auch ziemlich gut nur kann ich die Bilder wenn ich sie dann lokal gespeichert habe nicht öffnen. Ich glaube das liegt am Content Type, aber ich bin jetzt relativ ratlos.

    Man sieht ja auch dass ich schon ein paar Dinge ausprobiert habe, nur wills nicht so wie ich es will.

    Bitte um Hilfe.

    Gruß
    Markus


  • #2
    Hallo.
    Du solltest darauf achten, dass es sich immer um eine "Download"-Content-Type handelt, nicht um einen, den der Browser selbst öffnen kann.
    Es bietet sich von daher an, immer den Content-Type application/octet-stream zu verwenden.

    Ansonsten vielleicht ein:
    PHP-Code:
    header("Accept-Ranges: bytes");
    header("Content-Length: " filesize($path $file)); 
    Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

    Kommentar


    • #3
      Oder du zippst die Bilder einfach...

      Kommentar


      • #4
        PHP-Code:
        <?php
        $new_name 
        'abc.html';
        $original_name 'test.html';

        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
        header("Content-Type: application/octet-stream");
        header("Content-Disposition: attachment; filename=\"$new_name\"");
        header("Content-Description: File Transfer");
        header("Accept-Ranges: bytes");
        header("Content-Length: " filesize($original_name));

        readfile($original_name);
        exit();
        ?>
        So funktioniert es bei mir.
        Es funktioniert zwar auch mit dem eigentlichen Content-Type (hier: text/html) aber ich gehe da auf Nummer sicher, zumal der korrekte Dateityp trotzdem erkannt wird.
        Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

        Kommentar


        • #5
          Hallo,

          danke für die Antworten. Ich habe das jetzt mal ausprobiert.

          Bei mir werden aber immer noch nicht anzeigbare Bilder heruntergeladen.

          Hat jemand noch ne Idee?

          Gruß
          Markus

          Kommentar


          • #6
            Stimmt der Dateiname?
            Du musst bedenken, dass immer eine Datei zum Download angeboten wird. Ob diese auf dem Server tatsächlich existiert, ist eine andere Sache. Du solltest dir also $path . $file mal ausgeben lassen.
            Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

            Kommentar


            • #7
              Der Dateinname stimmt.

              Wenn ich bei dem Link einfach den Dateiname ausgebe, dann wird bei draufdrücken das Bild angezeigt.

              Kommentar


              • #8
                Zitat von Manko10 Beitrag anzeigen
                PHP-Code:
                <?php
                $new_name 
                'abc.html';
                $original_name 'test.html';

                header("Pragma: public");
                header("Expires: 0");
                header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
                header("Content-Type: application/octet-stream");
                header("Content-Disposition: attachment; filename=\"$new_name\"");
                header("Content-Description: File Transfer");
                header("Accept-Ranges: bytes");
                header("Content-Length: " filesize($original_name));

                readfile($original_name);
                exit();
                ?>
                So funktioniert es bei mir.
                Es funktioniert zwar auch mit dem eigentlichen Content-Type (hier: text/html) aber ich gehe da auf Nummer sicher, zumal der korrekte Dateityp trotzdem erkannt wird.
                Hallo habe dies auch mal ausprobiert, es wird das bild heruntergeladen aber wenn ich es öffne kommt ein text: Kann ich angeigt werden!
                Die Grafik Datei die ich anegeben habe ist auf den server!
                Ich finde die lösung nicht, habe auch schon google benutzt! Jedoch nichts gefunden!

                Kommentar


                • #9
                  Dann prüfe mal den Pfad zur Datei. Es kann auch nicht schaden, die heruntergeladene Datei mal im Texteditor zu öffnen, um zu sehen, ob vielleicht irgendetwas falsche heruntergeladen wurde.
                  Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

                  Kommentar

                  Lädt...
                  X