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 相关文章推荐
4.与数据库的连接
Oct 09 PHP
PHP文件操作实现代码分享
Sep 01 PHP
解析php中die(),exit(),return的区别
Jun 20 PHP
PHP临时文件的安全性分析
Jul 04 PHP
PHP封装分页函数实现文本分页和数字分页
Oct 23 PHP
PHP实现文件下载详解
Nov 27 PHP
php中使用gd库实现远程图片下载实例
May 12 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
php采用session实现防止页面重复刷新
Dec 24 PHP
PHP在线调试执行的实现方法(附demo源码)
Apr 28 PHP
PHP ADODB实现分页功能简单示例
May 25 PHP
基于swoole实现多人聊天室
Jun 14 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/08/21 PHP
PHP获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
JS实现简单短信验证码界面
2017/08/07 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
2020/11/11 Javascript
Vue-router中hash模式与history模式的区别详解
2020/12/15 Vue.js
[01:12]DOTA2次级职业联赛 - Newbee.Y 战队宣传片
2014/12/01 DOTA
python之yield表达式学习
2014/09/02 Python
python里大整数相乘相关技巧指南
2014/09/12 Python
遗传算法python版
2018/03/19 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
2019/08/08 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
Python3如何判断三角形的类型
2020/04/12 Python
python中time tzset()函数实例用法
2021/02/18 Python
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
创先争优承诺书
2015/01/20 职场文书
财务部会计岗位职责
2015/02/03 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
小兵张嘎观后感
2015/06/03 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书