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

  • freehawk
    hat ein Thema erstellt Bilder download nicht anzeigen.

    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

  • Manko10
    antwortet
    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.

    Einen Kommentar schreiben:


  • Tiimiiiboy
    antwortet
    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!

    Einen Kommentar schreiben:


  • freehawk
    antwortet
    Der Dateinname stimmt.

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

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    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.

    Einen Kommentar schreiben:


  • freehawk
    antwortet
    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

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    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.

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Oder du zippst die Bilder einfach...

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    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)); 

    Einen Kommentar schreiben:

Lädt...
X