Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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显示MySQL数据库中的图像_Php_Mysql - Fatal编程技术网

使用PHP显示MySQL数据库中的图像

使用PHP显示MySQL数据库中的图像,php,mysql,Php,Mysql,我正在尝试使用PHP在网页上显示来自MySQL数据库的图像。我知道这不是最有效的方法,但我还是想看看它是如何做到的 要将图像插入数据库,我使用以下代码: //Get File File file = new File("C:\\Users\\blah\\blah\\blah\\WebcamImage\\" + name); FileInputStream fileStream = new FileInputStream(file); //Prepared Statement pStmt =

我正在尝试使用PHP在网页上显示来自MySQL数据库的图像。我知道这不是最有效的方法,但我还是想看看它是如何做到的

要将图像插入数据库,我使用以下代码:

//Get File 
File file = new File("C:\\Users\\blah\\blah\\blah\\WebcamImage\\" + name);
FileInputStream fileStream = new FileInputStream(file);

//Prepared Statement
pStmt = connection.prepareStatement("INSERT INTO table (webcamPic1) values (?)");
pStmt.setBinaryStream(1, fileStream, (int) file.length());
pStmt.executeUpdate();  
为了在网站上显示图像,我目前有以下PHP代码:

$result = mysqli_query($con,"SELECT * FROM table");

header('Content-Type: image/jpeg;');

echo "<table border='1' title='WEBCAM'>
    <caption>WEBCAM</caption>
    <tr>
    <th>WEBCAM 1</th>
    </tr>";

while($row = mysqli_fetch_array($result))
{
    echo "<tr>";
    echo "<td>" . $row['webcamPic1'] . 
    "</td>";
    echo "</tr>";
}
echo "</table>";

mysqli_close($con);
在网页上,文件显示为一堆符号,如下所示:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
美元,701444'9=82 A:eFYD-!E•Xª2§•B'tŽmÐe§$BèQ¥VüAf:eøU“ KðOÒKœ8œr›lØ253; rØmÔHÔp0,qé[、H~3 KØrËvîØØØD«yÕrØm«H+1989× gƒž0ž;\ÚÕ›Pá$CÐ÷SòqþþŸžg=Öz>UèLžž0ždgåž8%0
+|œìUYˆ?++您在一个HTTP响应中混合了两种不同的内容-这种方式不起作用,您无法发送HTML和图像,因为HTTP不支持多路复用,例如SPDY。因此,这种方式是错误的,因为浏览器没有预料到这一点,并且考虑到它包含的所有数据,无法将两者分开在这个响应中,eceives作为HTML文档,因此垃圾处理您所看到的内容,因为它需要文本,并按此方式处理所有内容。要正确执行此操作,您应该有单独的PHP脚本,该脚本将返回图像内容,但对图像内容的请求应该来自浏览器。因此,您只需在SRC for image中返回图像脚本的URL即可:

<img src="image.php">
因为HTML不是图像/jpeg类型


PS:将图像存储在数据库中被认为是一个非常糟糕的主意。将图像存储在磁盘上,并仅在数据库记录中保留对它的引用。

您在一个HTTP响应中混合了两种不同的内容-它不以这种方式工作,并且您无法发送HTML和图像,因为HTTP不支持多路复用SPDY。例如,这就是w您作为浏览器执行此操作的方式不希望出现这种情况,并且考虑到它在此响应中接收的所有数据都是HTML文档,因此无法将其中一个与另一个分开,因此,当它期望文本时,您会看到垃圾,并照此处理所有内容。要正确执行此操作,您应该有单独的PHP脚本,该脚本将返回图像内容,但请求因为它应该来自浏览器。所以您只需在SRC中为图像返回图像脚本的URL即可:

<img src="image.php">
因为HTML不是图像/jpeg类型


PS:将图像存储在数据库中被认为是一个非常糟糕的主意。将图像存储在磁盘上,并仅在数据库记录中保留对它的引用。

有一种方法可以做到这一点,请尝试以下方法:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
数据uri符号应该完成这项工作

uri i base64编码图像的最后一部分。 因此,您只需从数据库获取图像数据,并使用base64_encode对其进行编码,然后将其返回到浏览器

有关更多详细信息,请检查以下内容:

有一种方法可以做到这一点,可以尝试以下方法:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
数据uri符号应该完成这项工作

uri i base64编码图像的最后一部分。 因此,您只需从数据库获取图像数据,并使用base64_encode对其进行编码,然后将其返回到浏览器

有关更多详细信息,请检查以下内容:

为什么不先存储pic的路径,然后将pic保存在服务器上的文件夹中?这样数据库中的代码就少得多了。@uruloke的效率也大大提高了。@Boann而且便宜得多,好像你不自己托管一样,那么数据库存储比普通存储要昂贵得多。为什么不存储pic的路径呢e pic,然后将pic保存在服务器上的文件夹中?这样,数据库中的代码就少了很多。@uruloke的效率也大大提高了。@Boann和便宜了很多,就像你没有自己托管一样,那么数据库存储比普通存储要贵得多好的,所以我可以看出我的做法是错误的。你如何放置im在网页上老化?我的计算机上的文件夹中保存了图像,所以我应该如何将其上传到网页上?请提供任何指导。不要在您的计算机上。您需要在Web服务器上保存图像。我的意思是,您应该抵制将其存储在数据库中。您应该拥有图像/文件夹,并将所有图像文件放在其中e,然后只存储链接,以便在需要时以DB形式提供图像。这会更好,因为图像是由您的Web服务器提供的,因此,如果缓存中已经有图像,浏览器可以跳过获取图像。您的代码不支持这一点,所以您可以提供所有图像。这是带宽浪费,等等。谢谢Marcin,我将重新讨论此问题并按照你的指导。好吧,这样我就可以看出我的做法是错误的。你如何将图像放到网页上?我的计算机上的文件夹中保存了图像,所以我应该如何将其放到网页上?任何指导都将不胜感激。不要在你的计算机上。你需要在你的网络服务器上有图像。我是说你应该请不要将其存储在数据库中。您应该有图像/文件夹
然后把所有的图像文件放在那里,如果需要的话,只需存储链接就可以在DB中显示图像。这是更好的,因为图像是由您的Web服务器提供的,所以浏览器可以跳过获取图像,如果它已经在缓存中。您的代码不支持这一点,因此无论发生什么情况,您都会提供所有图像。这是带宽浪费,等等。谢谢你,Marcin,我将重新讨论这个问题,并遵循你的指导。