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&amp;java(二)
Oct 09 PHP
用PHP生成html分页列表的代码
Mar 18 PHP
php 从数据库提取二进制图片的处理代码
Sep 09 PHP
PHP中计算字符串相似度的函数代码
Dec 29 PHP
php开启openssl的方法
May 15 PHP
php函数serialize()与unserialize()用法实例
Nov 06 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
使用php完成常见的文件上传功能(推荐)
Jan 13 PHP
PHP房贷计算器实例代码,等额本息,等额本金
Apr 01 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
thinkphp5.0自定义验证规则使用方法
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安全防范技巧分享
2011/11/03 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
JQuery的ajax获取数据后的处理总结(html,xml,json)
2010/07/14 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
JavaScript实现简单的星星评分效果
2017/05/18 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
9种python web 程序的部署方式小结
2014/06/30 Python
python生成式的send()方法(详解)
2017/05/08 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
python3爬虫之设计签名小程序
2018/06/19 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
2020/02/20 Python
利用python生成照片墙的示例代码
2020/04/09 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
2014年商场超市庆元旦活动方案
2014/02/14 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
十周年庆典策划方案
2014/06/03 职场文书
关爱残疾人标语
2014/06/25 职场文书
建筑管理专业求职信
2014/07/28 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
2015年党员个人自我评价
2015/03/03 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
小学班级标语口号大全
2015/12/26 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python
使用Ajax实现无刷新上传文件
2022/04/12 Javascript
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android