0

enter image description hereI have followed these examples

Have same way of displaying image saved as blob. I have field name picture longblob

if ( ! $(this).prev().hasClass('input-ghost') ) {
    var element = $("<input type='file' class='input-ghost' style='visibility:hidden; height:0'>");
    element.attr("name",$(this).attr("name"));
    element.change(function(){
     element.next(element).find('input').val((element.val()).split('\\').pop());
    });

to save in table i put it in an array and save in table along other fields enter image description here

saved in db like this now i want to display image in table row it in table row by using this

<td> echo '<img src="data:image/png;base64,' .base64_encode( $row['Picture_File'] ). '" />';?></td>

It gives error of

Cannot use object of type stdClass as array in

I want to display image as well as allow to download it


After implementing @Hassaan's answer I got the following output.

enter image description here

Sarah_Salar
  • 183
  • 2
  • 13
  • 1
    Somewhere you are using something as an array which is actually an object. Could be that $row["Picture_File"] should be $row->Picture_File. But I cannot see the code that generates your $row variable. – cjs1978 May 31 '18 at 20:32

1 Answers1

1

It seems to be you are using OOP method of Database connection. I hope the following will resolve the issue.

Replace

$row['Picture_File']

into

$row->Picture_File

Full line of code

echo '<img src="data:image/png;base64,'.base64_encode($row->Picture_File).'">';

NOTE:

Make sure to change mime type near image/png; to respective. For example if jpg then change into image/jpeg; etc


Tip

While save image as blob into database, you may need to store mime type too.

Muhammad Hassaan
  • 7,296
  • 6
  • 30
  • 50