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
php抓取https的内容的代码
Apr 06 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
May 19 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
Jun 12 PHP
php常用的安全过滤函数集锦
Oct 09 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
PHP开发Apache服务器配置
Jul 15 PHP
Yii数据库缓存实例分析
Mar 29 PHP
PHP递归遍历多维数组实现无限分类的方法
May 06 PHP
PHP基于curl后台远程登录正方教务系统的方法
Oct 14 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 PHP
PDO实现学生管理系统
Mar 21 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/06/14 PHP
PHP实现更新中间关联表数据的两种方法
2014/09/01 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
php使用number_format函数截取小数的方法分析
2016/05/27 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
解决laravel session失效的问题
2019/10/14 PHP
jquery中ajax学习笔记一
2011/10/16 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
基于Swiper实现移动端页面图片轮播效果
2017/12/28 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
2020/10/28 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
python与caffe改变通道顺序的方法
2018/08/04 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
厨师岗位职责
2013/11/12 职场文书
网络程序员自荐信
2014/01/25 职场文书
刘公岛导游词
2015/02/05 职场文书
十七岁的单车观后感
2015/06/12 职场文书
国际最新研究在陨石中发现DNA主要成分 或由陨石带来地球
2022/04/29 数码科技