从服务器下载文件

时间:2013-07-30 11:18:43

标签: php android download

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

1 个答案:

答案 0 :(得分:0)

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

1º下载您需要的所有数据 2º将图像Web方向下载到计算机 3º每个图像执行一个asynctask以下载它并在需要时更新您的活动

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