在我的项目中,我有一个从服务器下载图像的代码。在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 次?