Wie zu zwingen, ein Bild heruntergeladen werden?

I hava eine dynamisch generierte Bild auf meiner Seite etwa so:

<img id="my_image" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEA/gD+AAD/etc............" />

Statt zu sagen, meine Nutzer zum klicken Sie rechts auf das Bild und speichern drücken ich möchte aufzeigen, einen download-link, wenn darauf geklickt wird aufgefordert, das Bild heruntergeladen werden. Wie dies zu erreichen?

Zunächst mein Versuch mit so in js:

var path = $('#my_image').attr('src');
window.open('./download.php?file=' + path);

und in download.php:

<?php
    header('Content-Description: File Transfer');
    header("Content-type: application/octet-stream");
    header("Content-disposition: attachment; filename= " . $_GET['file'] . "");
?>

<img src="<?= $_GET['file'] ?>" />

Aber das problem ist, Base64-url-stirngs sind so groß, es überschreitet die GET-Anfrage byte-Grenze.

Ich bin offen für eine Lösung in JavaScript oder PHP.

  • Auch wenn die Base64-string hast, passen in den query-string, der PHP-code würde das nicht tun, was Sie erwarten, es zu tun.
  • stellen Sie die src-Punkt an ein php-script mit Header etc zum herunterladen. schließen Sie das Bild, oder verwenden Sie file_get_contents() verwenden, um das Bild.
  • möglich, Duplikat der Wie mache ich ein jpg Bild download, wie eine pdf-Datei nicht zu finden? hoffe, es hilft auch bruv :)
  • Wie haben Sie generieren die inline-Bild in den ersten Platz?
  • HTML5 FileReader verwendet, um schnappen Sie sich das Bild in den browser des Benutzers und der Bearbeitung er/Sie tut, wird durch Canvas JavaScript. Das JS-plugin ist, was erzeugt die Base64-Bild-code.
InformationsquelleAutor TK123 | 2012-08-21
Schreibe einen Kommentar