php带密码功能并将远程文件下载到本地指定目录修改版,需要的朋友可以参考下。
原作者bluestyle 提示 改进地方有
以前的算法是等文件下载完才计算, 
现在这个直接在在获取文件时候就计算大小 
加了容错语句 
增加了判断目录,没有目录自动创建 
把计算文件大小的算法换了个 
以前的那个光计算文件大小就7行代码, 
现在这个只要两行
转载请保留原作者版权信息,由于作者是政府人员,为不惹麻烦,请保留此段文字完整性 
html代码: 
 代码如下:
快乐飞扬博客 - 远程文件下载
file:
pass:
php代码: 
 代码如下: 
starttime = $this->get_microtime();} 
function stop() {$this->stoptime = $this->get_microtime();} 
function spent() { return round(($this->stoptime - $this->starttime) * 1000, 1);} 
} 
$runtime= new runtime; 
$runtime->start(); 
if (!isset($_post['submit'])) die(); 
$destination_folder = './download/'; // 下载的文件保存目录。必须以斜杠结尾 
if(!is_dir($destination_folder)) //判断目录是否存在 
mkdir($destination_folder,0777); //若无则创建,并给与777权限 windows忽略 
$url = $_post['url']; 
$headers = get_headers($url, 1); //得到文件大小 
if ((!array_key_exists(content-length, $headers))) {$filesize=0; } 
$newfname = $destination_folder . basename($url); 
$file = fopen ($url, rb); 
if ($file) { 
$newf = fopen ($newfname, wb); 
if ($newf) 
while(!feof($file)) {fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );} 
} 
if ($file) {fclose($file);} 
if ($newf) {fclose($newf);} 
$runtime->stop(); 
echo '
下载耗时: '.$runtime->spent().' 微秒,文件大小 '.$headers[content-length].' 字节'; 
echo '
下载成功! '.$showtime=date(y-m-d h:i:s).''; 
}elseif(isset($_post['password'])){ 
echo '
密码错误!请从新输入密码!'; 
} 
?>
   
 
   