0

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

4

1 回答 1

0

我遇到了和你一样的问题,我的解决方案是下一个:

1º 下载您需要的所有数据 2º 将图像网络方向下载到计算机 3º 为每个图像执行异步任务以下载它并在需要时更新您的活动

也许我不是那么准确,我需要更多细节来提供更好的解决方案。

于 2013-07-30T11:25:31.173 回答