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 简单数组排序实现代码
Aug 05 PHP
php 自写函数代码 获取关键字 去超链接
Feb 08 PHP
PHP新手NOTICE错误常见解决方法
Dec 07 PHP
深入了解PHP类Class的概念
Jun 14 PHP
PHP flock 文件锁详细介绍
Dec 29 PHP
php打开文件fopen函数的使用说明
Jul 05 PHP
php中url函数介绍及使用示例
Feb 13 PHP
php中的静态变量的基本用法
Mar 20 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
Jun 03 PHP
PHP实现微信提现(企业付款到零钱)
Aug 01 PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 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 sybase_fetch_array使用方法
2014/04/15 PHP
解决CodeIgniter伪静态失效
2014/06/09 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
jQuery侧边栏随窗口滚动实现方法
2013/03/04 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
2020/06/23 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
JS+HTML5 Canvas实现简单的写字板功能示例
2018/08/30 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
2019/11/13 Javascript
Vue-router编程式导航的两种实现代码
2021/03/04 Vue.js
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
使用Python构建Hopfield网络的教程
2015/04/14 Python
详解Python3中的Sequence type的使用
2015/08/01 Python
python各种语言间时间的转化实现代码
2016/03/23 Python
Python tkinter三种布局实例详解
2020/01/06 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
python中类与对象之间的关系详解
2020/12/16 Python
DNA基因检测和分析:23andMe
2019/05/01 全球购物
秘书英文求职信
2014/04/16 职场文书
班主任对学生的评语
2014/04/26 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
银行求职信模板
2015/03/20 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python
详解jQuery的核心函数和事件处理
2022/02/18 jQuery
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers