如何让我的数据库图像显示在表格中?

时间:2016-06-26 21:37:31

标签: php blob

目前我的表格如下:http://imgur.com/ZMb6Ade

图像直接进入数据库,因此服务器中没有任何文件可供存储。

Select3.php:

<?php  
 $db_host        = 'localhost';
 $db_user        = 'root';
 $db_pass        = '';
 $db_database    = 'crc'; 
 $output = ''; 
    $db = new PDO('mysql:host='.$db_host.';dbname='.$db_database, $db_user, $db_pass);
    $result = $db->prepare("SELECT * FROM pulseiras ORDER BY ref ASC ");
    $result->execute();     
$output .= '  
  <div class="table-responsive">  
       <table class="table table-bordered">  
            <tr>  
                 <th width="10%">REF</th> 
                 <th width="25%">Nome</th> 
                 <th width="25%">Preço</th>  
                 <th width="25%">Imagem</th> 
            </tr>';  
 if (count($result) > 0)   
{  
 for($i=0; $row = $result->fetch(); $i++){ 
       $output .= '  
            <tr>  
                 <td>'.$row["ref"].'</td>  
                  <td class="nome" data-ref1="'.$row["ref"].'" contenteditable>'.$row["nome"].'</td>  
                  <td class="preco" data-ref2="'.$row["ref"].'" contenteditable>'.$row["preco"].'</td> 
                  <td class="imagem" data-ref3="'.$row["ref"].'" contenteditable><img src="data:image/jpeg;base64,'.base64_encode( $row['imagem'] ).'"/></td> 
                 <td><button type="button" name="delete_btn" data-ref5="'.$row["ref"].'" class="btn btn-xs btn-danger btn_delete">X</button></td>  
            </tr>  
       ';  
  }  
  $output .= '  
       <tr>  
            <td></td>  
            <td id="nome" contenteditable></td>  
            <td id="preco" contenteditable></td>  
            <td id="imagem" contenteditable></td>    
       </tr>  
  ';  
}  
else  
{  
     $output .= '<tr>  
                      <td colspan="4">Data not Found</td>  
                 </tr>';  
}  
$output .= '</table>  
     </div>';  
echo $output;  
?>  

图像类型是BLOB。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

我最后一次这样做是在C#中所以我没有任何PHP,但这是伪代码的基本思想:

一个单独的页面为blob服务,用getblob.php等参数调用getblob.php?blogname = myblob.jpg:

select blob from blobtable where name='myblob.jpg'
execute, fetch, etc...

set mime type = image/jpeg
do some buffering here if the blobs are big
echo $blob

在你的HTML中:

<img src='getblob.php?blobname=myblob.jpg'/>
<img src='getblob.php?blobname=myotherblob.png'/>
etc....

这允许浏览器单独缓存图像,允许你在blob很大的情况下进行缓冲,因为没有编码就快得多,不会留下带有嵌入式base64字符串的大量html页面,可移植为blob可以很容易地链接到你想要的任何其他页面,允许插件只执行blob url,如果它是一个pdf,等等...

编辑以从某个网站添加php示例:here