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 相关文章推荐
php中用文本文件做数据库的实现方法
Mar 27 PHP
ajax实现无刷新分页(php)
Jul 18 PHP
PHP开发中四种查询返回结果分析
Jan 02 PHP
PHP使用CURL_MULTI实现多线程采集的例子
Jul 29 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
Oct 20 PHP
使用PHP接受文件并获得其后缀名的方法
Aug 05 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
Dec 10 PHP
PHP 读取文本文件内容并分页显示
Jan 02 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 PHP
PHP实现活动人选抽奖功能
Apr 19 PHP
Yii redis集合的基本使用教程
Jun 14 PHP
php实现断点续传大文件示例代码
Jun 19 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木马攻击防御之道
2008/03/24 PHP
PHP fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
srcElement表格样式
2006/09/03 Javascript
javascript 写类方式之六
2009/07/05 Javascript
用JQuery调用Session的实现代码
2010/10/29 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
jQuery判断checkbox是否选中的3种方法
2014/08/12 Javascript
JavaScript编写简单的计算器
2015/11/25 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
Sanic框架应用部署方法详解
2018/07/18 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
python调用支付宝支付接口流程
2019/08/15 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
挂牌仪式策划方案
2014/05/18 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
开业典礼致辞
2015/07/29 职场文书
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python