将base64编码的图像另存为BLOB到服务器端数据库
我正在使用以下代码从我的 Android应用程序中 拍照:
if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK){
photo = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.JPEG, 40, baos);
byte[] photoByte = baos.toByteArray();
encodedImage = Base64.encodeToString(photoByte,Base64.DEFAULT);
}
我正在encodedImage
通过POST将此字符串发送到我的PHP服务器,并将其接收到$encodedImage
。我有一个数据库,其中有一个myImage
type字段MEDIUMBLOB
。我试图保存在encodedimage
,myImage
但它被保存为损坏的图像。我尝试将另存为,base64_decode($encodedImage)
但是无论如何也无法正常工作。
我想做三件事:
-
将图像保存到服务器端数据库(BLOB)
-
显示图像到网页
-
将其发送回Android应用。
我在 理解 上述任务所需的不同格式的图像 转换 时遇到了问题。
对于我当前的项目,我不想将我的图像保存到文件夹中并提供指向数据库的链接,因此该选项对我来说是关闭的。
我的PHP代码保存图像:
$baseImage = $_POST['baseImage'];
$blobImage = base64_decode($baseImage);
$query = "INSERT INTO `complaints`(`myImage`,...) VALUES ('$blobImage',...)"
$result = mysqli_query($conn,$query);
-
使用关键字_binary前缀SQL。
$query = "INSERT INTO `complaints` (`myImage`,...) VALUES (_binary'".addcslashes($blobImage, "\x00\'\"\r\n")."',...)"
另外,使用CURL设置测试环境,以便您可以反复向其抛出base64编码的图像。这将是您需要大量调试的情况。
<?php $f = fopen('sample.jpg.base64.txt', 'w'); $i = fopen('sample.jpg', 'r'); if (!$i) { die("cannot open sample.jpg\n"); } $bytes = ''; while ( ! feof($i)) { $bytes .= fread($i, 4096); } fclose($i); fputs($f, base64_encode( $bytes ) ); fclose($f);
然后使用curl重复发布它并调试PHP
curl -X PUT "http://localhost/myimport.php" -F "baseImage=@./sample.jpg.base64.txt"
调整您的PHP脚本,只需将数据写到硬盘驱动器上的文件中,然后在其中进行检查即可。写出编码和解码的多个版本。
就个人而言,我不会对从Android到PHP的字节进行base64编码,但我 会将 base64编码在mysql中。
-
如何从 base64 数据 URI 保存 PNG 图像服务器端
2022-05-26 关注 0 浏览9 1答案
-
如何在sails.js或通常在服务器端JavaScript中将图像转换为base64编码的数据URL?
2021-01-31 关注 0 浏览67 1答案
-
如何将HTML5画布另存为服务器上的图像?
2021-02-02 关注 0 浏览99 1答案
-
如何将HTML5画布另存为服务器上的图像?
2021-01-31 关注 0 浏览127 1答案
-
将图像直接存储在数据库中还是作为base64数据存储?
2021-02-02 关注 0 浏览279 1答案
-
Base64编码图像
2021-02-02 关注 0 浏览120 1答案
-
如何从base64数据字符串保存PNG图片服务器端
2021-02-02 关注 0 浏览88 1答案
-
如何从base64数据字符串中保存PNG图片服务器端
2021-02-02 关注 0 浏览98 1答案
-
如何将图像转换为 Base64 编码
2022-04-11 关注 0 浏览31 1答案
-
如何将图像转换为base64编码?
2021-02-02 关注 0 浏览144 1答案