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正确配置mysql(apache环境)
Aug 28 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
Jun 09 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
php遍历文件夹和文件列表示例分享
Mar 11 PHP
PHP的全局错误处理详解
Apr 25 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
Aug 28 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
PHPstorm快捷键(分享)
Jul 17 PHP
PHP常见的几种攻击方式实例小结
Apr 29 PHP
PHP实现八皇后算法
May 06 PHP
解决php写入数据库乱码的问题
Sep 17 PHP
PHP实现倒计时功能
Nov 16 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 操作excel文件的方法小结
2009/12/31 PHP
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
php中ob函数缓冲机制深入理解
2015/08/03 PHP
Yii框架自定义数据库操作组件示例
2019/11/11 PHP
js removeChild 障眼法 可能出现的错误
2009/10/06 Javascript
Javascript学习笔记1 数据类型
2010/01/11 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
jQuery CSS3自定义美化Checkbox实现代码
2016/05/12 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
2016/06/03 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
[44:40]2018DOTA2亚洲邀请赛3月30日 小组赛A组Liquid VS OG
2018/03/31 DOTA
python抓取网页中图片并保存到本地
2015/12/01 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
python机器学习库xgboost的使用
2020/01/20 Python
python实现感知机模型的示例
2020/09/30 Python
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
毕业生幼师求职自荐信
2013/10/01 职场文书
综治宣传月活动总结
2014/04/28 职场文书
李开复演讲稿
2014/05/24 职场文书
财务工作失职检讨书
2014/11/21 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
考研英语复习计划
2015/01/19 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
MySQL限制查询和数据排序介绍
2022/03/25 MySQL