我目前正在开发一个Android应用程序,用户可以在其中发布图像,然后将其链接到他们自己的个人资料。这个项目是我第一次使用 PHP 时发生的,请原谅我对它似乎有点陌生。当他们上传图像时,图像会从 android studio 传递并通过 PHP 脚本保存到 MySQL 数据库。
PHP 脚本如下:
if($_SERVER['REQUEST_METHOD']=='GET'){
$id = $_GET['id'];
$sql = "SELECT post_image FROM post_image WHERE post_image_id = '$id'";
require_once('dbConnect.php');
$r = mysqli_query($con,$sql);
$result = mysqli_fetch_array($r);
header('content-type: image/jpeg');
echo base64_decode($result['image']);
mysqli_close($con);
}else{
echo "Error";
}
如您所见,这将从数据库中获取图像,将其传递给 android,然后显示在 imageview 中,但是,在 android studio 中,imageview 传递为 null,因此不会显示任何内容。发现这一点后,我在浏览器中运行了上面的 PHP 脚本,发现它也不返回图像,它只是显示图像的空占位符
我将此 PHP 脚本基于我已在应用程序中实现的另一个类似脚本,该脚本可以正常运行,两个脚本的唯一区别在于查询。
在尝试发现此脚本的问题所在时,我们将不胜感激。
最佳答案
您正在从表中选择post_image
,而结果却使用image
。这就是问题所在。将结果数据更改为
echo base64_decode($result['post_image']);
请记住,在开发环境中始终保持错误启用状态,以便您可以轻松获取它。或者查看错误日志
关于php - Android Activity方法获取图像返回null PHP MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45835232/