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 相关文章推荐
PHP5中的时间相差8小时的解决办法
Mar 28 PHP
php单件模式结合命令链模式使用说明
Sep 07 PHP
php多维数组去掉重复值示例分享
Mar 02 PHP
PHP实现数字补零功能的2个函数介绍
May 12 PHP
PHP的伪随机数与真随机数详解
May 27 PHP
PHP错误Warning:mysql_query()解决方法
Oct 24 PHP
php判断当前操作系统类型
Oct 28 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
浅析PHP开发规范
Feb 05 PHP
Laravel向公共模板赋值方法总结
Jun 25 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
php dirname(__FILE__) 获取当前文件的绝对路径
2011/06/28 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
js字符串操作方法实例分析
2015/05/06 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
2015/06/19 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
原生js实现购物车功能
2020/09/23 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
简述Python中的进程、线程、协程
2016/03/18 Python
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
Python实现的简单计算器功能详解
2018/08/25 Python
Python 私有化操作实例分析
2019/11/21 Python
Python解析json代码实例解析
2019/11/25 Python
python集合的新增元素方法整理
2020/12/07 Python
python实现计算图形面积
2021/02/22 Python
大学本科毕业生求职信范文
2013/12/18 职场文书
一月红领巾广播稿
2014/02/11 职场文书
大学生自我鉴定书
2014/03/24 职场文书
霸气队列口号
2014/06/18 职场文书
房屋维修协议书范本
2014/09/25 职场文书
乡镇干部个人整改措施思想汇报
2014/10/10 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
社团招新宣传语
2015/07/13 职场文书
浅谈Python协程asyncio
2021/06/20 Python