function downloadFileFromUrl($url, $dstFilepath) {
$fr = @fopen($url, 'r');
if($fr === false) {
throw new Primage_Proxy_Storage_SourceNotFound($url);
}
$fw = fopen($dstFilepath, 'w');
if($fw === false) {
throw new Exception('Writing to file "' . $dstFilepath . '" failed');
}
$timeLimit = 1000;
set_time_limit($timeLimit);
$deadline = time() + 1000;
while(!feof($fr)) {
$bufferString = fread($fr, 10000);
fwrite($fw, $bufferString);
if($deadline - time() < 10) {
fclose($fw);
fclose($fr);
unlink($dstFilepath);
throw new Primage_Proxy_Storage_SourceNotFound($url);
}
}
fclose($fw);
fclose($fr);
}
source
share