Also ich versuche, ein Bild mit einer http-Seite wie die, die Sie mit "View Image" in Ihrem Browser erhalten. Ich bin soweit gekommen und habe keine Ahnung, was ich noch tun muss, um Firefox dazu zu bringen, meine verdammten Bilddaten zu lesen.Header erforderlich, um ein Base64-Bild mit Perl anzuzeigen?
open (my $fh, "<", "/where/the/base64_encoded_img/is");
local $/= undef;
my $image = <$fh>;
close $fh;
local $/= "\n";
use MIME::Base64;
my $alpha;
$alpha .= "Content-type: image/png;base64 \n"; #our image is a PNG
$alpha .= "Content-length: " . MIME::Base64::encoded_base64_length($image) . " \n\n ";
$alpha .= " ";
#~ $alpha .= "<img src='$image'/>";
$alpha .= "$image";
print $alpha;
Man bedenke, dass ich sowohl mit als auch ohne die versucht "Daten: our_data_type; charset = utf-8; base64" Zeichenfolge vor dem Hash-Bild (Diese Zeichenfolge innerhalb des $ Bild enthalten ist Variable).
Ist das ein CGI-Skript? Es ist nicht notwendig, eine HTTP-Antwort zu erstellen, die ein Image ist. Sende einfach das Bild! Wenn Sie ein PNG direkt als Antwort auf eine HTTP-Anfrage senden (und es nicht in ein und denselben HTML-Code einbetten), ist das 'data:' URI-Schema irrelevant. –
Enthält '$ image' Rohdaten? Dann müssen Sie Base64-codieren, bevor Sie es ausgeben. – mob
Ich bin kein Experte, aber ich sah nie Ihre Notation für Content-Type, mit dem Base64 angehängt. Ich hätte stattdessen eine Content-Transer-Codierung verwendet, um die base64-Sache zu spezifizieren. Ist Ihr Image bereits in Base64 in der Datei? Wenn nicht, werden Sie wahrscheinlich Probleme haben. –