Transfer files between servers using php
Hello I wrote a little code in php that enables me to download a file from one website to my own! but there is a little problem here! I can only Download files from my website that are less than 4MB:( Now my question is that in what way I can Download special part of files from other websites! like from 1st byte to 10th byte! And second question is how to get file Information before starting D开发者_StackOverflow社区ownload! (I want files size for downloading)
http://www.polarpengi.gigfa.com/code.htm
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);
}
You can define a limit of how much bytes the curl operation will read using:
curl_setopt($ch, CURLOPT_RANGE,"1-2000"); //where 1-2000 range of downloaded bytes
however I don't think using curl to download a file is appropriate. Use file instead.
精彩评论