我正在选择一张图片,然后将其转换为base64编码并使用Google方法使用Google Volley Request发送到我的服务器。
将字符串发送到我的服务器后,我正在使用在线图像解码器工具检查图像,但是我看不到完整的图像。只有一半。
public String getStringImage(Bitmap bmp){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
return Base64.encodeToString(imageBytes, Base64.DEFAULT);
}
在PHP中它看起来像这样。
$stmt = $mysqli->prepare('INSERT INTO posts (ownerid, image, timestamp) VALUES (?, ?, ?)');
$stmt->bind_param('dsd', $uid, $image, $time);
此时我尝试阅读图片。
$stmt = $mysqli->prepare("SELECT image FROM posts WHERE id = ?");
$stmt->bind_param('d', $id);
$stmt->execute();
$stmt->bind_result($image);
$stmt->fetch();
$data = base64_decode($image);
$img = imagecreatefromstring($data);
imagejpeg($img);
imagedestroy($img);
PHP错误
Warning: imagecreatefromstring(): gd-png: fatal libpng error: Read Error: truncated data in image.php on line 35
Warning: imagecreatefromstring(): gd-png error: setjmp returns error condition in image.php on line 35
Warning: imagecreatefromstring(): Passed data is not in 'PNG' format in image.php on line 35
Warning: imagecreatefromstring(): Couldn't create GD Image Stream out of Data in image.php on line 35
Warning: imagejpeg() expects parameter 1 to be resource, boolean given in image.php on line 36
Warning: imagedestroy() expects parameter 1 to be resource, boolean given in image.php on line 37
编辑:这是我的桌子。
答案 0 :(得分:0)
Blob对于我的图片来说太小了。我已将其更改为Mediumblob,现在可以正常使用。