I need to send a base64
encoded string to a client. Therefore, I'm opening and reading an image file on the server, encode it and send that data along with the image/jpeg
content-type to the browser.
Example in php:
$image = $imagedir . 'example.jpg';
$image_file = fopen($image, 'r');
$image_data = fread($image_file, filesize($image));
header("Content-type: image/jpeg");
echo 'data:image/jpeg;base64,' . base64_encode($image_data);
Clientside, ben arıyorum:
var img = new Image();
img.src = "http://www.myserver.com/generate.php";
img.onerror = function(){alert('error');}
$(img).appendTo(document.body);
Bu nedense çalışmıyor. onerror
her zaman patlar. FireBug izlemek Network task
Örneğin, ben doğru başlık bilgilerini ve Aktarılan bayt doğru bir değer alıyorum söylüyor.
(Ben doğrudan komut ararsanız) gibi veri Content-type: text/plain
çalıştığını, base64
dize tarayıcıda gösterilen olduğunu gönderin. Kopyalama ve src
bir <img>
elemanın içine çıktı yapıştırarak beklendiği gibi görüntü gösterir.
Ben burada yanlış ne yapıyorum?
Solution
Teşekkürler Pekka
Benim hatam beni işaret için. Sen (siz yapamazsınız!) Gerekmez kodlamak bu yaklaşım bu tür base64 dize olarak ikili görüntü verileri. Base64 kodlama olmadan, sadece çalışır.