php带密码功能并下载远程文件保存本地指定目录 修改加强版


Posted in PHP onMay 16, 2010

php带密码功能并下载远程文件保存本地指定目录 修改加强版
原作者BlueStyle 提示 改进地方有

以前的算法是等文件下载完才计算,
现在这个直接在在获取文件时候就计算大小
加了容错语句
增加了判断目录,没有目录自动创建
把计算文件大小的算法换了个
以前的那个光计算文件大小就7行代码,
现在这个只要两行

转载请保留原作者版权信息,由于作者是政府人员,为不惹麻烦,请保留此段文字完整性
html代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>快乐飞扬博客 - 远程文件下载</title> 
</head> 
<body > 
<form method="post"> 
<li>File: <input name="url" size="40" /> 
<input name="submit" type="submit" /></li> 
<li>Pass: <input name="password" type="password" /></li> 
</form>

PHP代码:
<?php 
# Copyright 2010 快乐飞扬 
# http://www.klfy.org/ 供新手学习参考 
set_time_limit (0); //不限时 24 * 60 * 60 
$password = 'admin'; //管理密码 
$pass = $_POST['password']; 
if ($pass == $password) { 
class runtime { 
var $StartTime = 0; 
var $StopTime = 0; 
function get_microtime(){list($usec, $sec) = explode(' ', microtime()); 
return ((float)$usec + (float)$sec);} 
function start() {$this->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 '<br /><li>下载耗时:<font color="blue"> '.$runtime->spent().' </font>微秒,文件大小<font color="blue"> '.$headers["Content-Length"].' </font>字节</li>'; 
echo '<br /><li><font color="red">下载成功! '.$showtime=date("Y-m-d H:i:s").'</font></li>'; 
}elseif(isset($_POST['password'])){ 
echo '<br /><li><font color="red">密码错误!请从新输入密码!</font></li>'; 
} 
?> 
</body> 
</html>
PHP 相关文章推荐
为php4加入动态flash文件的生成的支持
Oct 09 PHP
PHP4中实现动态代理
Oct 09 PHP
深入解析php模板技术原理【一】
Jan 10 PHP
PHP批量生成缩略图的代码
Jul 19 PHP
PHP安全技术之 实现php基本安全
Sep 04 PHP
采用thinkphp自带方法生成静态html文件详解
Jun 13 PHP
php获取网页中图片、DIV内容的简单方法
Jun 19 PHP
php使用iconv中文截断问题的解决方法
Feb 11 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
Dec 31 PHP
php实现通过soap调用.Net的WebService asmx文件
Feb 27 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
Mar 15 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 PHP
ezSQL PHP数据库操作类库
May 16 #PHP
php 提速工具eAccelerator 配置参数详解
May 16 #PHP
php date()日期时间函数详解
May 16 #PHP
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
May 16 #PHP
PHP下打开URL地址的几种方法小结
May 16 #PHP
让PHP支持断点续传的源码
May 16 #PHP
php 获取一个月第一天与最后一天的代码
May 16 #PHP
You might like
ThinkPHP函数详解之M方法和R方法
2015/09/10 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
Zend Framework教程之MVC框架的Controller用法分析
2016/03/07 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
浅析JS中document对象的一些重要属性
2014/03/06 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
jQuery实现Tab菜单滚动切换的方法
2015/09/21 Javascript
js实现无缝滚动特效
2015/12/20 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
Node.js+Express配置入门教程详解
2016/05/19 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
微信小程序录音与播放录音功能
2017/12/25 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
python文件操作整理汇总
2014/10/21 Python
python中json格式数据输出的简单实现方法
2016/10/31 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
Python Django 页面上展示固定的页码数实现代码
2019/08/21 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
英国领先的运动物理治疗供应公司:Vivomed
2018/07/14 全球购物
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
办公室主任先进事迹
2014/01/18 职场文书
计算机专业优秀大学生自我总结
2014/01/21 职场文书
秘书英文求职信范文
2014/01/31 职场文书
大课间体育活动方案
2014/03/12 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
教师工作决心书
2015/02/04 职场文书
复兴之路展览观后感
2015/06/02 职场文书