gpt4 book ai didi

php - 使用 PHP 显示来自 MySQL 数据库的图像

转载 作者:太空宇宙 更新时间:2023-11-03 10:49:06 24 4
gpt4 key购买 nike

我正在尝试使用 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);

在网页上文件显示为一堆符号,如下所示:

ÿØÿàJFIFÿÛC $.' ",#(7),01444'9=82<.342ÿÛC
2!!22222222222222222222222222222222222222222222222222ÿÀz£!ÿÄÿÄC!1AQa"q2‘¡±Á#Bá3RÑðbrñ$4CSc¢s’“ÂÒÿÄÿÄ(!1AQa"2q‘¡ðBÿÚ?ûö„ã=–Ù0Xa˜@•7BÀÙ”BTà÷@DÂ.€Å¬´ 7……Óc¨L1„¡£ì·2€Ä#?tû­7A‘öTl¢ƒÂeEUn@BØ@r°@Â%TCŠ(€±@,±@#„” RBÔB‘ }’¢µ!•HHá›'±'')DÝ”%@Í7 Ì((hTm¥)U æð¦[쨑6HE¾Pl%sA"æ[ÔûJ¨‹©OHh°7s Iáp€Ñ¨":µþ¦³Ó÷5¨Ò¼Ñ©ÿí÷]'âäŸöG'àèVqw«ý&Çì¹êøY&'¡Y²ñ¹Wg)±Âï ‡·òYCÿ_¥4÷NÜ.m˜,ƒ„¨g²3öEdÃBžrº¿^·º á•Flˆ!5Õ„NxZ0ˆP…¯>ꨢ ¡Aº£eFYD-!E•)‚ÓÙ›!•Xª2^Pct§•B‘ tŽmÐ) e¨$B‹ÇQ¥•V¹Af:EøU”£ Kð®¡OµÒk­ 8)œ•r›lØýղТêRˆçÔm¡HÔp0,¹qàé[¢h~³kêäRË)vîîë·ãžØåßD«YpÕ«+ÑÆ9× gƒž0ºü;\ÚÕ›Pá$C“Ð÷Sòðùqþ‰ÇŸÇ“Ó>Âg=Ö^z>UëL”Àñu0ÇdgªŠåü‘Y8„%0@@dÃ(0ˆˆ¼
+| ל¦‚xEY„£÷TˆƒÙÁ[¿T-•” ìUYˆ?+ <#‰ES
Žot‹­€è(*Â4 E•jRBƒÂ ¸YEÌIÌ ¨°((×BèkïÑA@dvYX€”‰TIÀ©Pm·”ûP

显然我做错了什么。显示真实图像的正确方法是什么?

谢谢。

最佳答案

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

<img src="image.php">

如果是,则从 image.php 输出图像。

此外,由于其他原因,您的代码当前代码也没有任何意义:

header('Content-Type: image/jpeg;');
echo "<table border='1' title='WEBCAM'>

因为 HTML 不是 image/jpeg 类型。

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

关于php - 使用 PHP 显示来自 MySQL 数据库的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26959105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com