0

我一直在努力研究这个应用程序,但最近遇到了一个问题。我正在尝试将图像(或这些图像的路径)存储在本地网络上的数据库中,并从我的 android 应用程序中检索它们。我已经能够使用 PHP 和 JSON 来检索文本信息,但不知道从哪里开始获取图像。我应该将实际图像存储在 MySQL 数据库中还是图像路径中?我怎样才能使它们保持整洁的格式?非常感谢你们提供的任何信息。

4

2 回答 2

1

只需将路径存储在数据库中。创建一个可能包含以下字段的简单表:

path - 服务器上图像的文件路径或文件名 id - 在检索或识别图像宽度时有用的数字 auto_increment id - 可选,但可能会派上用场,因为存储高度/宽度比在检索高度时计算它更快 - 与宽度类别 - 如果您想一次显示多个图像,这可以帮助您将它们分组并确定哪些属于一起。为属于一起的图像赋予相同的类别值

为了检索特定图片的信息,您可以通过以下两种方式之一调用它。最可能的解决方案是根据文件名检索图像。

$con = mysql_connect('host', 'user', 'pass');
$db = mysql_select_db('mydb');

$imgName = 'picture.jpg';
$getImg = mysql_query("SELECT * FROM mypics WHERE path='" . $imgName . "' ORDER BY id DESC LIMIT 1");
$imgSrc = mysql_result("path", 0, $getImg);
echo '<img src="' . $imgName . '" />';

当然这似乎有点没用,因为我们已经知道文件名开头,因为我们将它存储在 $imgName 中并使用它来搜索数据库中的条目,但您可以根据 ID、类别、宽度或高度进行搜索都是一样的。但是,这只会检索返回的第一张图像。同样,由于“ORDER BY id DESC”调用,图像按最新排序。如果您希望能够检索查询返回的所有图像,只需从查询中删除“LIMIT 1”并将 mysql_result() 中的“0”更改为您要检索的任何条目。请注意,结果像数组一样以 0 为索引,因此如果您想要第 5 个结果,您将得到结果 4。

如果要显示某个类别中的所有图像,可以执行以下操作:

$con = mysql_connect('host', 'user', 'pass');
$db = mysql_select_db('mydb');

$getImgs = mysql_query("SELECT * FROM mypics WHERE category='android' ORDER BY id DESC");
while( ($i = mysql_fetch_array($getImgs) ) {
    echo '<img src="' . $i['path'] . '" />';
}

这将显示“android”类别中的所有图像,从最近的开始。希望有帮助。

于 2012-11-21T05:39:48.777 回答
0

您可以将图像以字节数组的形式保存在数据库中。当你想找回它时,你可以得到它。或者有图片的Base64转换。

于 2012-11-21T05:43:10.547 回答