目前我的表格如下: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。任何帮助表示赞赏。
答案 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。