Php 从数据库读取时,图像未调整大小?
我试图读取存储在MySQL数据库中的BLOB类型的图像。它可以读取图像,但不会调整图像大小。我正在使用“高度-宽度”属性,但它不起作用。原因是什么 我的目标是调整图像的大小,因为有时用户上传的图像高度和宽度都很大Php 从数据库读取时,图像未调整大小?,php,mysql,css,Php,Mysql,Css,我试图读取存储在MySQL数据库中的BLOB类型的图像。它可以读取图像,但不会调整图像大小。我正在使用“高度-宽度”属性,但它不起作用。原因是什么 我的目标是调整图像的大小,因为有时用户上传的图像高度和宽度都很大 <?php $db=mysqli_connect("localhost",$user,$passwd,$dbname,$port); mysqli_select_db($db,"deal_bank"); $sql
<?php
$db=mysqli_connect("localhost",$user,$passwd,$dbname,$port);
mysqli_select_db($db,"deal_bank");
$sql = "SELECT * FROM image";
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
echo '<img src="data:image/jpg;base64,'.base64_encode( $result['image'] ).'"/ height=\"42\" width="\42\" >';
?
>
在不需要时转义双引号
echo '<img src="data:image/jpg;base64,'.base64_encode( $result['image'] ).'" height="42" width="42" >';
echo';
不建议您使用src=data,因为它不完全受支持。代码应该在服务器上执行缩略图处理,尤其是对于数据URI,因为每个请求的带宽都增加了。我建议在上传时这样做,也许可以同时存储原始和缩略图。要查看客户端上的图像是什么(以及为什么),请使用浏览器检查器工具查看元素:查看属性(HTML和CSS)和计算大小。(SQL查询也缺少一个适当的筛选子句。)旁注将图像存储在数据库中是非常糟糕的做法。您应该将它们存储在文件夹中,并将图像的路径存储在数据库中。这是因为处理速度还是因为可能存在高带宽?只是想了解为什么这不是一个好的做法?实际上,base64增加了数据长度,因此您可以向浏览器发送更多数据,与std图像相比,大约多37%,而且浏览器不会缓存图像,因此每次请求时都会发送图像。也会降低服务器和mysql服务器之间的速度。是的,它使您的数据库更大,更难以正常方式导入/导出,更不用说备份或负载平衡复制(可能),而且不支持IE6和IE7。如果你有一个沉重的网站,它最终将成为一个更大的问题,然后方便。但对你来说:)