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循环输出数据库内容的代码
May 24 PHP
PHP 压缩文件夹的类代码
Nov 05 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
Apr 17 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
Jun 23 PHP
PHP把数字转成人民币大写的函数分享
Jun 30 PHP
php7 安装yar 生成docker镜像
May 09 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
PHP实时统计中文字数和区别
Feb 28 PHP
YII框架页面缓存操作示例
Apr 29 PHP
php下的原生ajax请求用法实例分析
Feb 28 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 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中Session的概念
2006/10/09 PHP
php 网页游戏开发入门教程一(webgame+design)
2009/10/26 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
PHP 断点续传实例详解
2017/11/11 PHP
超简单的jquery的AJAX用法
2010/05/10 Javascript
js创建对象的几种常用方式小结(推荐)
2010/10/24 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
Spring mvc 接收json对象
2015/12/10 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
如何在JS文件中获取Vue组件
2020/09/16 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
Python获取系统默认字符编码的方法
2015/06/04 Python
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
在校生钳工实习自我鉴定
2013/09/19 职场文书
大学生毕业自我评价范文分享
2013/11/07 职场文书
饲料采购员岗位职责
2013/12/19 职场文书
演讲稿怎么写
2014/01/07 职场文书
《鱼游到了纸上》教学反思
2014/02/20 职场文书
化妆品促销方案
2014/02/24 职场文书
推普周活动总结
2014/08/28 职场文书
python实现网络五子棋
2021/04/11 Python
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫