在我的项目中,我有一个从服务器下载图像的代码。在php代码中我有:
if (is_dir($dir)){ //check if is directory
$files = scandir($dir); //list files
$i=-1;
$result = array();
foreach($files as $file){
$file = $dir.$file; //complete dir of file
if(is_file($file)){ //if it's a file
$i++;
$fileo = @fopen($file,"rb"); //open and write it on $result[$i]
if ($fileo) {
$result[$i] = "";
while(!feof($fileo)) {
$result[$i] .= fread($fileo, 1024*8);
flush();
if (connection_status()!=0) {
@fclose($fileo);
die();
}
}
$result[$i] = utf8_encode($result[$i]); //This prevents null returning on jsonencode
@fclose($fileo);
}
}
}
}else{
echo json_encode(array('Error'));
}
echo json_encode($result); //returns images as an array of strings, each one with all code of an image.
在java中我有一个带asynctask的httpost方法。问题是我需要等到所有图像都下载完毕。我想也许我可以下载一个带有数字的图像,如果数字为0,例如召回服务器下载下一个图像,但我认为这可能是浪费时间再次调用服务器和列出文件。有没有更好的方法,所以我可以同时下载每个图像的图像而不是所有图像,而无需向服务器调用N次?
答案 0 :(得分:0)
我遇到了同样的问题,我的解决方案是下一个:
1º下载您需要的所有数据 2º将图像Web方向下载到计算机 3º每个图像执行一个asynctask以下载它并在需要时更新您的活动
也许我不是那么精确,我需要更多细节来提供更好的解决方案。