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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
可定制的PHP缩略图生成程式(需要GD库支持)
Mar 06 PHP
用PHP控制用户的浏览器--ob*函数的使用说明
Mar 16 PHP
php+mysql分页代码详解
Mar 27 PHP
PHP 函数语法介绍一
Jun 14 PHP
php接口和抽象类使用示例详解
Mar 02 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
Jun 27 PHP
php表单提交与$_POST实例分析
Jan 26 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
Jun 06 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 PHP
PHP实现多图上传和单图上传功能
May 17 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的一些小问题
2010/07/03 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
PHP内存缓存功能memcached示例
2016/10/19 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
Js中sort()方法的用法
2006/11/04 Javascript
js几个验证函数代码
2010/03/25 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
2016/05/10 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
详解Vue项目中实现锚点定位
2019/04/24 Javascript
JS利用prototype给类添加方法操作详解
2019/06/21 Javascript
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
django之session与分页(实例讲解)
2017/11/13 Python
python实现超市扫码仪计费
2018/05/30 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
Flask框架钩子函数功能与用法分析
2019/08/02 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
美国智能家居专家:tink
2019/06/04 全球购物
英文求职信结束语大全
2013/10/26 职场文书
公司年会搞笑主持词
2014/03/24 职场文书
女生抽烟检讨书
2014/10/05 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
企业开发CSS命名BEM代码规范实践
2022/02/12 HTML / CSS
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电