filebox管理php,filebox.php
/**
* 程序说明
* @package FileBox
* @author Jooies
* @copyright Copyright (c) 2014-2016
* @since Version 1.8.1.2
*
* 设置说明
* $sitetitle - 标题名称
* $filefolder - 程序目录
* $user - 用户名
* $pass - 密码
* $safe_num - 设置多少次后禁止登陆,为0则不限制,建议为3-5
* $mail - 若有恶意登录,会发邮件到这个邮箱,前提是mail()函数可用!
*/
header('Content-Type: text/html; charset=utf-8');
date_default_timezone_set('Asia/Shanghai');
session_start();
error_reporting(1);
$filefolder = "./";
$sitetitle = $_SERVER['HTTP_HOST'];
$user = 'konica';//用户名
$pass = 'dbfa3ff3e3785ac5cfd8b9f0e715e7e8';//加密后的密码
$salt = 'www.iikira.com';//加密用盐,请乱打
$enpassrmethod = md5(md5($salt).md5($_REQUEST['pass']));//加密密码的方式,更换保留“$_REQUEST['pass']”
$encookie = substr(hash('sha512',hash('sha256',md5(md5($salt).md5($pass)))),34,76).substr(sha1(md5(md5($salt.$sitetitle.$user.$pass))),8,29);//加密cookie
$safe_num = 5;//设置多少次后禁止登陆,为0则不限制,建议为3-5
$mail = 'root@localhost';//若有恶意登录,会发邮件到这个邮箱,前提是mail()函数可用!
$meurl = $_SERVER['PHP_SELF'];
$os = (DIRECTORY_SEPARATOR=='\\')?"windows":'linux';
$op = (isset($_REQUEST['op']))?$_REQUEST['op']:'home';
$action = (isset($_REQUEST['action']))?$_REQUEST['action']:'';
$folder = (isset($_REQUEST['folder']))?$_REQUEST['folder']:'./';
$arr = str_split($folder);
if($arr[count($arr)-1]!=='/')$folder .= '/';
while (preg_match('/\.\.\//',$folder)) $folder = preg_replace('/\.\.\//','/',$folder);
while (preg_match('/\/\//',$folder)) $folder = preg_replace('/\/\//','/',$folder);
if($folder == '')$folder = $filefolder;
$ufolder = $folder;
if($_SESSION['error'] > $safe_num && $safe_num !== 0)printerror('您已经被限制登陆!');
/****************************************************************/
/* 用户登录函数 */
/* */
/* 需要浏览器开启Cookies才可使用 */
/****************************************************************/
ini_set("session.cookie_httponly", 1);
if ($_COOKIE['user'] != $user || $_COOKIE['pass'] != $encookie) {
if ($_REQUEST['user'] == $user && $enpassrmethod == $pass) {
setcookie('user',$user,time()+60*60*24*1);
setcookie('pass',$encookie,time()+60*60*24*1, NULL, NULL, NULL, TRUE);
}else{
if ($_REQUEST['user'] == $user || $_REQUEST['pass']) $er = true;
login($er);
exit;
}
}
/****************************************************************/
/* function maintop() */
/* */
/* 控制站点的样式和头部内容 */
/* $title -> 顶部标题 $showtop -> 是否显示头部菜单 */
/****************************************************************/
function maintop($title,$showtop = true) {
global $meurl,$sitetitle;
echo "\n\n\n
\n\n\n"
."
$sitetitle - $title\n"
."\n"
."
\n"
."\n";
if($_REQUEST['op']!=='home')$back = "
返回 ".$_SESSION['folder']."\n";else $back = '';
echo "
$sitetitle
\n";
if ($showtop) {//头部菜单内容
echo "
- 主页\n"
.$back
."
上传文件\n"
."
创建文件\n"
."
MySQL备份\n"
."
FTP备份\n"
."
注销\n"
."
";
}
echo "
}
/****************************************************************/
/* function login() */
/* */
/* 登录验证 $user and md5($pass) */
/* 需要浏览器支持Cookie */
/****************************************************************/
function login($er=false) {
global $meurl,$op,$safe_num,$mail;
setcookie("user","",time()-60*60*24*1);
setcookie("pass","",time()-60*60*24*1);
maintop("登录",false);
if ($er) {
if (isset($_SESSION['error'])){
$_SESSION['error']++;
if($_SESSION['error'] > $safe_num && $safe_num !== 0){
mail($mail,'FileBox文件管理器提醒:文件被恶意登录!','该提醒来自FileBox:
登录者IP为:'.$_SERVER['REMOTE_ADDR'],'From: ');
echo ('ERROR: 您已经被限制登陆!');
exit;
}
}else{
$_SESSION['error'] = 1;
}
echo "用户名或密码错误!
\n";
}
echo "
\n"
."\n"
."\n"
."\n"
."
\n";
mainbottom();
}
/****************************************************************/
/* function home() */
/* */
/* Main function that displays contents of folders. */
/****************************************************************/
function home() {
global $os, $meurl ,$folder, $ufolder;
$content1 = "";
$content2 = "";
$folder = gCode($folder);
if(opendir($folder)){$style = opendir($folder);}else{printerror("目录不存在!\n");exit;}
$a=1;
$b=1;
if($folder)$_SESSION['folder']=$ufolder;
maintop("主页");
echo "
while($stylesheet = readdir($style)) {
$ufolder = $folder;
$sstylesheet = $stylesheet;
if($os!=='windows'):$qx = "
".substr(sprintf('%o',fileperms($ufolder.$sstylesheet)), -3)."";$xx='';else:$qx = '';$xx='';endif;
if ($stylesheet !== "." && $stylesheet !== ".." ) {
$stylesheet = uCode($stylesheet);
$folder = uCode($folder);
$rename = "
重命名\n";
if (is_dir(gCode($folder.$stylesheet)) && is_readable(gCode($folder.$stylesheet))) {
$content1[$a] = "
\n"
."
{$stylesheet}\n"
."
".Size(dirSize($folder.$stylesheet)).""
."
打开\n"
.$rename
."
查看\n"
.$qx."
\n";
$a++;
$folder = gCode($folder);
}elseif(!is_dir(gCode($folder.$stylesheet)) && is_readable(gCode($folder.$stylesheet))){
$arr = explode('.',$folder.$stylesheet);
$arr = end($arr);
if($arr == 'zip'){#判断是否是zip文件
$content2[$b] = "
\n"
."
{$stylesheet}\n"
."
".Size(filesize($ufolder.$sstylesheet)).""
."
\n"
.$rename
."
提取\n"
.$qx."
\n";
}elseif($arr == 'gif'||$arr == 'jpg'||$arr == 'png'||$arr == 'bmp'||$arr == 'png5'||$arr == 'psd'||$arr == 'webp'||$arr == 'gz'||$arr == 'gzip'){
$content2[$b] = "
\n"
."
{$stylesheet}\n"
."
".Size(filesize($ufolder.$sstylesheet)).""
."
\n"
.$rename
."
查看\n"
.$qx."
\n";
}else{
$content2[$b] = "
\n"
."
{$stylesheet}\n"
."
".Size(filesize($ufolder.$sstylesheet)).""
."
编辑\n"
.$rename
."
查看\n"
.$qx."
\n";
}
$b++;
$folder = gCode($folder);
}
}
}
closedir($style);
$lu = explode('/', $_SESSION['folder']);
if($a != 1 and $b != 1){$content1[$a-1] = $content1[$a-1]."
".$xx."";}
array_pop($lu);
$u = '';
echo '
foreach ($lu as $v) {
$u = $u.$v.'/';
if($v=='.'){$v='主页';}elseif($v==''){$v='根目录';}
echo ''.$v.' » ';
}
echo "文件\n"
."",$a-1," 个文件夹 ",$b-1," 个文件
"
."
if($os!=='windows'):$qx = "
权限\n";else:$qx = '';endif;
echo "
"
."
var collid = document.getElementById('check')
var coll = document.getElementsByTagName('input')
if (collid.checked){
for(var i = 0; i < coll.length; i++)
coll[i].checked = true;
}else{
for(var i = 0; i < coll.length; i++)
coll[i].checked = false;
}}"
."
\n"
."
文件名\n"
."
大小\n"
."
打开\n"
."
重命名\n"
."
查看\n"
.$qx
."
";
if($_SESSION['folder']!="./" and $_SESSION['folder']!="/"){
$last = (substr($_SESSION['folder'],0,1)=='/')?explode('/', substr($_SESSION['folder'],1,-1)):explode('/', substr($_SESSION['folder'],2,-1));
$back = (substr($_SESSION['folder'],0,1)=='/')?'':substr($_SESSION['folder'],0,1);
array_pop($last);
foreach ($last as $value) {
$back = $back.'/'.$value;
}
if($os=='windows')$qx="";else $qx="
";
echo "
上级目录$xx";
}
for ($a=1; $a
for ($b=1; $b
echo "
";
mainbottom();
}
//获得创建日期等
function gettime($filename)
{
return "修改时间:".date("Y-m-d H:i:s",filemtime($filename))."\n"."创建时间:".date("Y-m-d H:i:s",filectime($filename));
}
function uCode($text)
{
return mb_convert_encoding($text,'UTF-8','GBK');
}
function gCode($text)
{
return mb_convert_encoding($text,'GBK','UTF-8');
}
// 计算文件夹大小的函数
function dirSize($directoty){
$dir_size=0;
$times=0;
if($times<=2){
if($dir_handle=opendir($directoty))
{
while($filename=readdir($dir_handle)){
$subFile=$directoty.DIRECTORY_SEPARATOR.$filename;
if($filename=='.'||$filename=='..'){
continue;
}elseif (is_dir($subFile))
{
$times = $times + 1;
$dir_size+=dirSize($subFile);
}elseif (is_file($subFile)){
$dir_size+=filesize($subFile);
}
}
closedir($dir_handle);
}
}
return ($dir_size);
}
// 计算文件大小的函数
function Size($size) {
$sz = ' kMGTP';
$factor = floor((strlen($size) - 1) / 3);
return ($size>=1024)?sprintf("%.2f", $size / pow(1024, $factor)) . @$sz[$factor]:$size;
}
function curl_get_contents($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); //设置访问的url地址
//curl_setopt($ch,CURLOPT_HEADER,1); //是否显示头部信息
curl_setopt($ch, CURLOPT_TIMEOUT, 60); //设置超时
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); //跟踪301
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //返回结果
$r = curl_exec($ch);
curl_close($ch);
return $r;
}
/****************************************************************/
/* function up() */
/* */
/* First step to Upload. */
/* User enters a file and the submits it to upload() */
/****************************************************************/
function up() {
global $meurl, $folder, $content;
maintop("上传");
echo "
\n"
."
."\n";
echo $content
."
"
."
."删除 "
."
\n"
.""
."
\n";
echo "
远程下载是从其他服务器获取文件并直接下载到当前服务器的一种功能。
类似于SSH的Wget功能,免去我们下载再手动上传所浪费的时间。"
."
"
."
."删除
\n"
.""
."";
mainbottom();
}
/****************************************************************/
/* function yupload() */
/* */
/* Second step in wget file. */
/* Saves the file to the disk. */
/* Recieves $upfile from up() as the uploaded file. */
/****************************************************************/
function yupload($url, $folder, $unzip, $delzip) {
global $meurl;
if(empty($folder)){
$folder="./";
}
$nfolder = $folder;
$nurl = $url;
$url = gCode($url);
$folder = gCode($folder);
if($url!==""){
ignore_user_abort(true); // 要求离线也可下载
set_time_limit (24 * 60 * 60); // 设置超时时间
if (!file_exists($folder)){
mkdir($folder, 0755);
}
$newfname = $folder . basename($url); // 取得文件的名称
if(function_exists('curl_init')){
$file = curl_get_contents($url);
file_put_contents($newfname,$file);
}else{
$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); // 关闭本地文件
}
}
maintop("远程上传");
echo "
$end = explode('.', basename($url));
if((end($end)=="zip") && isset($unzip) && $unzip == "checkbox"){
if(class_exists('ZipArchive')){
echo "您可以 访问文件夹 或者 返回目录 或者 继续上传\n";
echo "
";
$zip = new ZipArchive();
if ($zip->open($folder.basename($url)) === TRUE) {
if($zip->extractTo($folder)){
for($i = 0; $i < $zip->numFiles; $i++) {
echo "Unzip:".$zip->getNameIndex($i)."\n";
}
$zip->close();
}else{
echo('Error:'.$nfolder.$ndename.'');
}
echo basename($nurl)." 已经被解压到 $nfolder\n";
if(isset($delzip) && $delzip == "checkbox"){
if(unlink($folder.basename($url))){
echo basename($url)." 删除成功\n";
}else{
echo basename($url)." 删除失败\n";
}
}
}else{
echo('无法解压文件:'.$nfolder.basename($nurl).'');
}
echo '
';
}else{
echo('此服务器上的PHP不支持ZipArchive,无法解压文件!
');
}
}else{
echo "您可以 访问文件夹 或者 编辑文件 或者 返回目录 或者 继续上传\n
";
filebox管理php,filebox.php相关推荐
- php内容管理工具-filebox源代码
<?php /*** 程序说明* @package FileBox* @author Jooies <858123429@qq.com>* @copyright Copyright ...
- jquery easyui 使用filebox 实现异步上传图片方法
首先引入相关的css和js <link href="css/themes/default/easyui.css" rel="stylesheet" typ ...
- c#MVC文件(图片,word,excel,zip等)批量上传
最近一直研究文件批量上传,功夫不负有心人终于解决了. 该文件上传使用队里的新式,实现了文件批量上传. 首先看一下我前端的处理操作 @{Layout = ""; }<!DOCT ...
- 五子棋游戏程序设计制作(C语言)
五子棋游戏程序设计制作 大家都玩过手机的小游戏吧.我是编程爱好者,喜欢动脑筋研究一些算法,编程做出小游戏程序,很有趣很有成就感.在学习VB6编程时就编制过钻石棋和伤脑筋十二块那样的游戏,都是标准Win ...
- 五子棋游戏程序记录和复盘功能设置
五子棋游戏程序记录和复盘功能设置 大家都玩过手机的小游戏吧.我是编程爱好者,喜欢动脑筋研究一些算法,编程做出小游戏程序,很有趣很有成就感.在学习VB6编程时就编制过钻石棋和伤脑筋十二块那样的游戏,都是 ...
- 渐变色按钮功能按钮绘制C语言示例
渐变色按钮功能按钮绘制C语言示例 本文介绍C语言绘图示例: 1.渐变色按钮 绘制 详见drawcover() 2.功能按钮小图形 绘制 详见newgame () 3.游戏图形 ...
- H5移动端实现图片上传
效果图: Html代码: <div class="file-box clearboth" id="fileBox"><label class= ...
- js插件+UploadFile类实现图片的批量上传
文件上传无疑是web应用中一个非常常用的功能,下面小编给大家分享一下diyUpload.js+ThinkPHP中的UploadFile类实现图片的批量上传. 首先,给大家介绍展示一下具体操作页面: h ...
- H5移动端实现仿QQ空间照片上传效果代码
最近在做项目的时候需要实现一个手机端上传图片效果,但是本来想用H5 的 multiple属性进行一次性多图上传,无奈安卓系统兼容性硬伤,暂时找不到兼容安卓网页版的多图上传方案,于是就仿了QQ空间网页版 ...
- 伤脑筋十二块游戏程序设计制作
伤脑筋十二块游戏程序制作 大家都玩过手机的小游戏吧.我是编程爱好者,喜欢动脑筋研究一些算法,编程做出小游戏程序,很有趣很有成就感.在学习VB6编程时就编制过钻石棋和伤脑筋十二块那样的游戏,都是标准Wi ...
最新文章
- 理解HTTP消息头【很完整,例子也很丰富】
- reverse mapping checking getaddrinfo for bogon failed – POSSIBLE BREAK-IN ATTEMPT! 错误
- python中urllib.quote出现KeyError
- 会议 | 2018年全国知识图谱与语义计算大会(CCKS 2018)
- 淮北师范18-19计算机科学与技术大类实验课试卷
- java可视化插件_java的WindowBuilder可视化插件
- 重庆的计算机学校排名2015,2015年计算机考研学校排名
- 谷歌等质问IETF:IPv6的用户在哪里?
- python自动化测试难不难_我从功能测试进阶到自动化测试工程师的经验总结~|Atstudy...
- 【算法学习】将MSRCR中的模糊处理由FFT修改为时域纯高斯模糊
- Atitit 高等教育 中产教育 普通教育的异同 目录 1. 顶层精英教育	1 1.1. 领导力 影响力	1 1.2. 国王规范	1 1.3. 宗教领袖	1 1.4. 决策能力	1 1.5. 国际视
- SQL2008卸载。
- 统计学基础知识有哪些?看这一篇就够了
- html内编写vbs,HTML_VBS编程教程 (第2篇),第二篇: 我真没想到, - phpStudy
- ppt编辑数据链接文件不可用_excel表格编辑数据不可用-ppt插入的自带图表点击编辑数据时显示链接文件不可用...
- python中冒号报错_python冒号_python 冒号_python冒号报错 - 云+社区 - 腾讯云
- 2020大学计算机有什么专业,2020计算机专业院校名单「大学排名」
- 第四周:基于图像相似度比较的分镜头
- Windows系统DOS命令之多线程技术
- ISO 4589-2 OI极限氧指数与UL94V0阻燃等级
热门文章
- 八皇后算法带给我们的启示吧
- 7-45 实验8_2_推销员的便条 (100 分)
- bugku misc QAQ
- 【嵌入式06】寄存器方式和HAL库方式实现 串口通信“hello windows!”+流水灯
- Kali 工具系列【2】在kali linux 上抓取握手包
- 网络流精讲——最大流 包教包会
- 流媒体协议(三):FLV协议
- java数据透视表算法_用Java Steams创建数据透视表
- em表示什么长度单位_CSS的长度单位(em)与em标签
- DATAGUARD手记(DUPLICATE)(四)