how to send png image from server to display in browser via ajax how to send png image from server to display in browser via ajax ajax ajax

how to send png image from server to display in browser via ajax


You could display a default "no access" image to users who are forbidden to access the image:

<?php$file = $_GET['file']; // don't forget to sanitize this!header('Content-type: image/png');if (user_is_allowed_to_access($file)) {    readfile($file);}else {    readfile('some/default/file.png');}

And, on the client side:

<img src="script.php?file=path/to/file.png" />

Alternatively, if you really really want or need to send the data via Ajax, you can Base64 encode it:

<?phpecho base64_encode(file_get_contents($file));

And place the response in an img tag using the Data URI scheme

var img = '<img src="data:image/png;base64,'+ server_reponse +'"/>';

Given that the Base64 encoded data is significantly larger than the original, you could send the raw data and encode it in the browser using a library.


Does that make sense to you?


Instead of getting get_image.php through AJAX, why not just use:

<img src="get_image.php" />

It's practically the same thing. You can just use AJAX to update the <img> dynamically.


You can't do it via ajax.

You could do something like this:

<img src="script.php?image=image_name" />

Then use JavaScript to change the query string.