Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将图像从服务器下载到SD卡的更好方法_Java_Php_Android_Json_Base64 - Fatal编程技术网

Java 将图像从服务器下载到SD卡的更好方法

Java 将图像从服务器下载到SD卡的更好方法,java,php,android,json,base64,Java,Php,Android,Json,Base64,我的图像存储在文档根目录中,图像路径(字符串)保存在数据库中。数据库中的每个项目都与一个imagePath关联。下一步是将这些图像传输到Android Sd卡 困境: 1) 我有一个php脚本,它将图像文件转换为base64,然后与项目详细信息一起存储在Json对象中。转换后,base64字符串将再次(使用java)转换为图像,并保存到sd卡。此外,在这种方法中,我可以轻松地将图像路径存储在sqlite中,因为它直接关联到一个项目 $type = pathinfo($row["imagePath

我的图像存储在文档根目录中,图像路径(字符串)保存在数据库中。数据库中的每个项目都与一个
imagePath
关联。下一步是将这些图像传输到Android Sd卡

困境:

1) 我有一个php脚本,它将图像文件转换为base64,然后与项目详细信息一起存储在Json对象中。转换后,base64字符串将再次(使用java)转换为图像,并保存到sd卡。此外,在这种方法中,我可以轻松地将图像路径存储在sqlite中,因为它直接关联到一个项目

$type = pathinfo($row["imagePath"], PATHINFO_EXTENSION);
JSONParser jParser = new JSONParser();

for (int i = 0; i < products.length(); i++) {
                        // individually get each arrays
                        JSONObject c = products.getJSONObject(i);

                        {// Save Main Groups Images in SD CARD

                            byte[] decodedString = Base64.decode(
                                    c.getString(TAG_IMAGE_NAME),
                                    Base64.DEFAULT);
                            Bitmap decodedByte = BitmapFactory
                                    .decodeByteArray(decodedString, 0,
                                            decodedString.length);
}

我想要第一种方法,它很酷,因为有很多过程,但我担心应用程序的性能。2号更好。将文件保存到sd卡并确保sd卡中的图像路径存储在sqlite中的有效方法是什么?

使用android query framework,它可以处理db缓存,而且性能非常快。jar和这里可用的源代码我是否需要忽略我的php脚本而使用android查询?这个库符合我的要求吗,先生?你必须给androidquery提供图像的url,它将下载并存储到SD卡。当尝试第二次从同一url下载时,android query会自动管理并在db中检查图像是否已经在SD卡中,然后会从SD卡返回而不下载。顺便说一句,我也使用通用图像加载器来处理显示和缓存。我从2年起就使用这个框架,并且对它有丰富的经验。
URL url = new URL(_url);
URLConnection connection = url.openConnection();
connection.connect();
InputStream input = new BufferedInputStream(url.openStream());