Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库读取时,图像未调整大小?_Php_Mysql_Css - Fatal编程技术网

Php 从数据库读取时,图像未调整大小?

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

我试图读取存储在MySQL数据库中的BLOB类型的图像。它可以读取图像,但不会调整图像大小。我正在使用“高度-宽度”属性,但它不起作用。原因是什么

我的目标是调整图像的大小,因为有时用户上传的图像高度和宽度都很大

      <?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。如果你有一个沉重的网站,它最终将成为一个更大的问题,然后方便。但对你来说:)