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 远程关机操作的代码
Dec 05 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
Nov 01 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
linux下安装php的memcached客户端
Aug 03 PHP
PHP实现的简易版图片相似度比较
Jan 07 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
May 11 PHP
通过PHP简单实例介绍文件上传
Dec 16 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
May 13 PHP
PHP实现的分页类定义与用法示例
Jul 05 PHP
mac pecl 安装php7.1扩展教程
Oct 17 PHP
实例讲解PHP表单
Jun 10 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
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
8个必备的PHP功能开发
2015/10/02 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
JSON格式的时间/Date(2367828670431)/格式转为正常的年-月-日 格式的代码
2016/07/27 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
分分钟玩转Vue.js组件(二)
2017/03/01 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
分享6个隐藏的python功能
2017/12/07 Python
python环境路径配置以及命令行运行脚本
2019/04/02 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
使用Python实现文字转语音并生成wav文件的例子
2019/08/08 Python
Python tkinter常用操作代码实例
2020/01/03 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
同事打架检讨书
2014/02/04 职场文书
《孔子游春》教学反思
2014/02/25 职场文书
《长征》教学反思
2014/04/27 职场文书
学习雷锋精神演讲稿
2014/05/10 职场文书
个人求职信范文
2014/05/24 职场文书
出纳试用期自我鉴定范文
2014/09/16 职场文书
2014年村党支部工作总结
2014/12/04 职场文书
员工工作心得体会
2019/05/07 职场文书
用Python实现Newton插值法
2021/04/17 Python
oracle覆盖导入dmp文件的2种方法
2021/05/21 Oracle
Python实现单例模式的5种方法
2021/06/15 Python
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记