gpt4 book ai didi

java - 如何使用 php 显示来自 mySQL DB 的压缩 Blob 文件

转载 作者:行者123 更新时间:2023-11-30 21:52:00 25 4
gpt4 key购买 nike

我编写了一个 Android 应用程序,可以将图像发送到我的 mySQL 数据库。在将图像发送到数据库之前,我将其压缩以减少流量:

public String getStringImage(Bitmap bmp){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
}

所以现在我想使用 php 在我的网站上显示图像。我用未压缩的图像进行了尝试,并且它使用了以下代码:

<!DOCTYPE html>
<html>
<body>
<?php
$id = $_GET['id'];

$db = mysqli_connect("localhost","user","pass","db-name");
$sql = "SELECT * FROM tbl_images WHERE id = $id";
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['imgdata'] ).'"/>';
?>

</body>
</html>

你能帮我处理压缩图像吗?谢谢!

最佳答案

1) 对图像进行 base64 编码后,您从压缩图像中获得的任何 yield 都会丢失。最好将您的图片保存为二进制文件并上传。

2) 最好将文件存储在文件系统上,而不是将 base64 编码的字符串存储在数据库中。因此,您将在数据库记录中存储文件名或文件路径,并将实际二进制文件存储在文件系统中。然后在图像标签中,您只需将源设为上传文件的路径。

3) 您的 SQL 查询对 SQL 注入(inject)开放。如果我将 id 参数键入“1 OR 1=1”,查询将返回什么?

关于java - 如何使用 php 显示来自 mySQL DB 的压缩 Blob 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46808913/

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