Will R.
Will R.

Reputation: 120

display image stored in database

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

Answers (1)

Marc B
Marc B

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

Related Questions