Reputation: 120
I have images that are base64 encoded as blobs in my sql database.
using a php script I can properly display the picture in my browser using.
echo '<img src="data:image/jpeg;base64,' . $fetch_row['object']. '" />';
however, I would like to create a view that would display the photo directly or by accessing the php file and returning the picture in a column. I have tried using something like: in mysql
concat('<img src="data:image/jpeg;base64,',`object`,'" />')
or concat('<img src=/image.php? blah blah blah)
any ideas?
Upvotes: 0
Views: 1400
Reputation: 360572
<?php
header('Content-type: image/jpeg');
echo base64_decode($fetch_row['object']);
Your question also exactly typifies why storing images in the database is a BAD idea. If the image was just a file on your server's drive, you could just have
<img src="/path/to/file.jpg" />
and not have to involve the DB/PHP layer at all. As it stands now, your data-uri version prevents the browser from caching that image at all, and you'll be forcing the user to download that image EVERY time, burning up their (and your) bandwidth.
Upvotes: 1