Идея дизайна, лежащая в основе разработки этого файла, заключается в следующем. Некоторые веб-сайты или клиенты программного обеспечения B/S часто предъявляют особые требования к определенным деталям на этапе установки и отладки программного обеспечения, например, к настройке шрифтов или небольшим изменениям в интерфейсе. Столкнувшись с такой ситуацией, если пользователь не открывает функцию FTP, разработчикам и обслуживающему персоналу часто приходится заходить на сайт, чтобы выполнить небольшую работу по отладке.
Это пустая трата времени, рабочей силы и материальных ресурсов.
При таких обстоятельствах я разработал этот одностраничный файл JSP с функциями управления файлами. Он предоставляет функции добавления, переименования и удаления папок, изменения, переименования, удаления и загрузки файлов; В основном это может удовлетворить небольшие работы по модификации на этапе установки и отладки программного обеспечения.
По соображениям безопасности эта страница JSP предоставляет простую функцию входа пользователя в систему.
Перед использованием поместите этот файл в файл веб-сайта или в любой каталог продукта B/S. Откройте права на чтение и запись для каталога установки файла. Пользователи могут удаленно войти на страницу JSP для выполнения функций управления. После завершения этапа установки и обслуживания измените разрешения на чтение и запись каталога установки файла и удалите файл, чтобы избежать угроз безопасности.
По умолчанию имя пользователя для входа: admin, а пароль:
среда разработки нечетного мира jakarta-tomcat-4.0.3.exe.
Примечание. Поскольку функция загрузки файлов этого программного обеспечения должна поддерживаться компонентом smartupload. Пожалуйста, поместите smartupload в соответствующую папку web-inf Tomcat. Если компоненты, которые вы поддерживаете для загрузки, отличаются, внесите изменения самостоятельно.
Краткие инструкции по разработке: поскольку этот документ не сложен, и я считаю, что, хотя описание документа не стандартизировано, оно также подробное, поэтому я намерен лишь кратко объяснить некоторые мелкие детали.
1. Когда этот файл выполняет операции с каталогом файлов, каталог передается непосредственно в качестве параметра без соответствующего преобразования. Это связано с тем, что в Java «английские символы» могут рассматриваться как escape-символы, вызывая непредвиденные проблемы при обработке символов, поэтому я думаю, что более разумно использовать каталог непосредственно в качестве параметра.
2. В этом документе при отправке некоторых форм вместо кнопок используются соединения. Это связано с тем, что когда JavaScript обрабатывает строки с «", он также может обрабатывать escape-символы. Поэтому, чтобы предотвратить эту ситуацию, для отправки параметров каталога используется метод. форма подключения.
3. strStat и strErr — это две строки, которые проходят по всему файлу. Первая — это команда определения того, какие операции будет выполнять страница, а вторая — информационная подсказка об ошибках во всех операциях.
4. Я не буду давать никаких объяснений по вопросам безопасности или другим спорам, которые могут возникнуть в связи с этим документом. Я просто предоставляю этот файл как бесплатный инструмент для всеобщего ознакомления и использования.
-------------------------------------------------- ---------------
Содержимое файла admin.jsp
<%-- Система управления файлами веб-сайта OddWorld (версия на упрощенном китайском языке), 10 октября 2003 г.
копия принадлежит Джоарду Асту
Функция admin.jsp: страница управления фоном файлов веб-сайта.
--%>
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.Date" %>
<%@ page import="com.jspsmart.upload.SmartUpload" %>
<%@page import="javax.servlet.http.HttpSession" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="java.lang.reflect.*" %>
<% //Преобразование китайских символов%>
<%!
общественная статическая строка UnicodeToChinese(String s){
пытаться{
if(s==null||s.equals("")) return "";
Строка newstring=null;
newstring = новая строка(s.getBytes("ISO8859_1"),"gb2312");
вернуть строку новостей;
}
catch (UnsupportedEncodingException e)
{
вернуть с;
}
}
общественная статическая строка ChineseToUnicode(String s){
пытаться{
if(s==null||s.equals("")) return "";
Строка newstring=null;
newstring = новая строка(s.getBytes("gb2312"), "ISO8859_1");
вернуть строку новостей;
}
catch (UnsupportedEncodingException e)
{
вернуть с;
}
}
%>
<%
//обновляем проблему
response.setHeader("Pragma","Без кэша");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Срок действия истекает", 0);
//Настраиваем пароль и имя пользователя для входа в систему
//Правильное имя пользователя
Строка имя пользователя="admin"
//Правильный пароль
String userpass="oddworld"
//Получаем системный путь
ServletContext app=(ServletContext)pageContext.getServletContext();
String strSysPath = app.getRealPath("/");
//Обработка физического пути объекта
String strDealPath=""
//Отображение сообщения об ошибке
Строка strErr="";
//Отображает состояние отображения страницы, вход — для отображения страницы входа; show — для обычного отображения информации о файле; EditDo — для отображения страницы редактирования файлов;
createF — для отображения файла; страница создания папок; createFDo — операция создания папки; renameFold — страница, отображающая имя
папки
; renameFoldDo — операция изменения имени папки; delFoldDo — операция удаления папки; страница, отображающая имя файла; renameFileDo — операция изменения имени файла;
delFileDo — операция удаления файлов; uploadFile — страница, отображающая загруженные файлы;
String strStat="login";
//Массив, используемый для отображения файлов в состоянии отображения.
File[] fileArr=null
//Получаем физический путь к обрабатываемому объекту на основе переданного параметра пути
if (request.getParameter("path")==null || request.getParameter("path").equals("")){
стрДеалПат = стрСисПат;
}еще{
//Получаем параметры пути
strDealPath = UnicodeToChinese(request.getParameter("путь"));
}
//Проверяем, существует ли значение сеанса, если нет, выводим сообщение об ошибке
//сеанс HttpSession = request.getSession(false);
if (session.getValue("loginIn")==null || !session.getValue("loginIn").equals("pass"))
{
стрСтат="логин";
strErr="Вы не вошли в систему или время входа в систему истекло, пожалуйста, войдите еще раз!";
}
//Создаем файловый объект и проверяем, существует ли каталог
File myFile=new File(strDealPath);
//Проверяем, существует ли папка
если(!myFile.exists()){
strErr="Выбранная вами папка не существует, выберите еще раз!";
}
//По разным параметрам выполняем соответствующие операции
if(request.getParameter("act")==null || request.getParameter("act").equals("") ||
request.getParameter("act").equals("login"))
{
if(request.getParameter("username")!=null && request.getParameter("userpass")!=null)
{
//Исправить зашифрованный пароль MD5
//String userpass="OEEO99107DC8C1EE2E06666B965601EF";
if(request.getParameter("username").equals(username) && (request.getParameter("userpass")).equals(userpass))
{
session.putValue("loginIn","pass");
response.sendRedirect(request.getRequestURI()+"?act=show");
}
}
еще {
стрСтат="логин";
strErr="Вы не вошли в систему или время входа в систему истекло, пожалуйста, войдите еще раз!";
}
}else if(request.getParameter("act").equals("show")){
//По умолчанию страница отображает информацию о файле в обычном режиме statStat="show"
стрСтат="показать";
//Создаем массив списка файлов
fileArr=myFile.listFiles();
} else if(request.getParameter("act").equals("edit"))
{
//Страница редактирования содержимого файла
//В зависимости от того, существует ли request.getParameter("file") и существует ли соответствующий файл. Если да, выполняем операцию редактирования. Если нет, выводим сообщение об ошибке.
if (!(request.getParameter("file")==null || request.getParameter("file").equals(""))){
Файл fileEdit=новый
файл(UnicodeToChinese(request.getParameter("путь"))+UnicodeToChinese(request.getParameter("файл")));
если (fileEdit.exists())
//Операция редактирования файла на самом деле заключается в изменении отображения страницы и использовании текстовой области для отображения информации о файле для редактирования.
стрСтат="редактировать";
еще
//Показать сообщение об ошибке
strErr="Выбранный вами файл не существует, выберите еще раз!";
}еще{
strErr="Вы не выбрали файл для редактирования, выберите еще раз!";
}
} else if(request.getParameter("act").equals("editDo"))
{
//Записываем измененное содержимое в файл и возвращаемся на страницу модификации
if (!(request.getParameter("file")==null || request.getParameter("file").equals("")))
{
Файл fileEdit=новый
файл(UnicodeToChinese(request.getParameter("путь"))+UnicodeToChinese(request.getParameter("файл")));
если (fileEdit.exists())
{
//Операция редактирования файла на самом деле заключается в использовании текстовой области для отображения содержимого файла на странице после изменения содержимого файла и продолжения редактирования или
просмотра эффекта изменения.
if(!(request.getParameter("fileData")==null))
{
пытаться{
PrintWriter pwEdit = null;
pwEdit = новый PrintWriter (новый
FileOutputStream (UnicodeToChinese (request.getParameter («путь»)) + UnicodeToChinese (request.getParameter («файл»))));
pwEdit.println(UnicodeToChinese(request.getParameter("fileData")));
pwEdit.close();
response.sendRedirect(request.getRequestURI()+"?path="+
UnicodeToChinese(request.getParameter("path")) +"&file="+ UnicodeToChinese(request.getParameter("file")) +"&act=edit" );
возвращаться;
}catch(Исключение е){
strErr="Ошибка записи файла, выберите еще раз!";
}
}еще{
strErr="Параметр для изменения содержимого файла отсутствует, выберите еще раз!";
}
}еще
//Показать сообщение об ошибке
strErr="Выбранный вами файл не существует, выберите еще раз!";
}еще{
strErr="Вы не выбрали файл для редактирования, выберите еще раз!";
}
} else if(request.getParameter("act").equals("createF"))
{
//Отображение страницы для создания новой папки
стрСтат="создатьФ";
} else if(request.getParameter("act").equals("createFDo"))
{
//Создаем новую папку
String strFoldName=strDealPath+UnicodeToChinese(request.getParameter("foldName")).trim()+"\";
//out.println(strFoldName);
//out.close();
Файл fileCreateF = новый файл (strFoldName);
если(!fileCreateF.exists())
{
пытаться{
fileCreateF.mkdir();
response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");
возвращаться;
}catch(Исключение е){
strErr="Не удалось создать новую папку!";
}
}
еще
{
strErr="Указанное имя папки совпадает с именем существующей папки, укажите новое имя папки!";
}
} else if(request.getParameter("act").equals("delFoldDo"))
{
//Удалить операцию
пытаться{
String strFileDelF=strDealPath+UnicodeToChinese(request.getParameter("fold"))+"\";
Файл fileDelF = новый файл (strFileDelF);
если (fileDelF.exists()) {
Файл[] fileArrCheck=fileDelF.listFiles();
если(!(fileArrCheck.length>0))
{
файлDelF.delete();
response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");
возвращаться;
}еще
{
strErr="В папке все еще есть файлы, пожалуйста, удалите все файлы, а затем удалите папку";
}
}еще{
strErr="Папка, которую нужно удалить, не существует, выберите еще раз";
}
}catch (Исключение е)
{
strErr="Ошибка операции удаления папки!";
}
} else if(request.getParameter("act").equals("renameFold"))
{
strStat="renameFold";
} else if(request.getParameter("act").equals("renameFoldDo"))
{
//Операция переименования папки
//Определяем, есть ли изменение имени папки на основе параметров
if(request.getParameter("changeDo").equals("true"))
{
//Есть имя файла, и происходит смена имени
пытаться{
String strFileRenameF=strDealPath+UnicodeToChinese(request.getParameter("fold"))+"\";
Файл fileRenameF = новый файл (strFileRenameF);
String strFileRenameToF=strDealPath+UnicodeToChinese(request.getParameter("newFoldName"))+"\";
Файл fileRenameToF = новый файл (strFileRenameToF);
//Определяем, существует ли переименованная папка
если (fileRenameF.exists()) {
//Определяем, совпадает ли имя новой папки с именем существующей папки
если(!fileRenameToF.exists())
{
fileRenameF.renameTo(fileRenameToF);
response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");
возвращаться;
}еще
{
strErr="Указанное имя папки совпадает с именем существующей папки, укажите новое имя папки!";
}
}еще{
strErr="Папка, которую нужно переименовать, не существует, выберите еще раз";
}
}catch (Исключение е)
{
strErr="Ошибка операции переименования папки!";
}
}
} else if(request.getParameter("act").equals("renameFile"))
{
strStat="renameFile";
} else if(request.getParameter("act").equals("renameFileDo"))
{
//Операция переименования файла
//Определяем, есть ли изменение имени файла на основе параметров
if(request.getParameter("changeDo").equals("true"))
{
//Есть имя файла, и происходит смена имени
пытаться{
String strFileRenameFi=strDealPath+UnicodeToChinese(request.getParameter("файл"));
Файл fileRenameFi = новый файл (strFileRenameFi);
String strFileRenameToFi=strDealPath+UnicodeToChinese(request.getParameter("newFileName"));
Файл fileRenameToFi = новый файл (strFileRenameToFi);
//Определяем, существует ли переименованный файл
если (fileRenameFi.exists()) {
//Определяем, совпадает ли имя нового файла с именем существующего файла
если(!fileRenameToFi.exists())
{
fileRenameFi.renameTo(fileRenameToFi);
response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");
возвращаться;
}еще
{
strErr="Указанное имя файла совпадает с существующим именем файла, укажите новое имя файла!";
}
}еще{
strErr="Файл, который нужно переименовать, не существует, выберите еще раз";
}
}catch (Исключение е)
{
strErr="Ошибка операции переименования файла!";
}
}
} else if(request.getParameter("act").equals("delFileDo"))
{
//Удалить операцию
пытаться{
String strFileDelFi=strDealPath+UnicodeToChinese(request.getParameter("файл"));
Файл fileDelFi = новый файл (strFileDelFi);
если (fileDelFi.exists())
{
файлDelFi.delete();
response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");
возвращаться;
}еще{
strErr="Файл, который нужно удалить, не существует, выберите еще раз";
}
}catch (Исключение е)
{
strErr="Ошибка операции удаления файла!";
}
} else if(request.getParameter("act").equals("uploadFile"))
{
strStat="uploadFile";
} else if(request.getParameter("act").equals("uploadFileDo"))
{
%>
<jsp:useBean id="mySmartUpload"scope="page" class="com.jspsmart.upload.SmartUpload" />
<%
//Операция загрузки файла
mySmartUpload.initialize(pageContext);
1000000
);
mySmartUpload.upload();
mySmartUpload.save(strDealPath);
response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");
возвращаться;
} catch (Исключение е) {
strErr="Ошибка загрузки файла. Проверьте, не превышен ли размер файла в 1 М!";
}
}
%>
<%
out.println(strStat);
%>
<HTML><HEAD><TITLE>Список каталогов для /</TITLE>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META content="MSHTML 5.00.2920.0" name=GENERATOR></HEAD>
<BODY bgColor=белый>
<div align="center">
<table border=0 cellpadding=5 cellpacing=0 width="90%">
<тело>
<тр>
<td align=left bgcolor=#000066 valign=bottom><font color=#ffffff face=宋体
size=4 Роман Новый ,?times><b> Файловый менеджер веб-сайта</b></font></td>
<td align=right bgcolor=#000066 valign=bottom><font color=#ffffff face=宋体
size=4 Roman New ,?times><b> <strong><%=request.getContextPath()%></strong></b></font></td>
</tr>
</tbody>
</таблица>
<table width="90%" border="0" cellpacing="0" cellpadding="5">
<тр>
<td><font size="2"><b>Физический путь:</b><%=strDealPath%></font></td>
</tr>
</таблица>
<br>
<% if (strStat.equals("login")){%>
<table width="300" border="0" cellpacing="1" cellpadding="0" >
<тр>
<td height="200" valign="top" align="center">
<p выравнивание="центр">
<table width="100%" border="0" cellpacing="1" cellpadding="5" bgcolor=#999999 class=a9px>
<тр>
<td bgcolor="#cccccc"><font size=+2>Войти</font></td>
</tr>
<тр>
<td bgcolor="#FFFFFF" valign="top" align="center">
<table width="100%" border="0" cellpacing="0" cellpadding="0">
<имя формы=метод формы данных=post action='<%=request.getRequestURI()%>?act=login'>
<тр>
<td width="100"><b><font size="-1">Имя для входа: </font></b></td>
<тд>
<входная максимальная длина=16
name="имя пользователя" value="">
</td>
</tr>
<тр>
<td width="100"><b><font size="-1">Пароль:</font></b></td>
<тд>
<входной класс=stedit maxlength=16
name="userpass" value="">
</td>
</tr>
</форма>
</таблица>
<br>
<граница таблицы=0 cellpadding=0 cellspace=0>
<тело>
<тр>
<тд>
<input name=update onClick="javascript:if (checkform()==false);" type=button value="Login">
</td>
<td> </td>
<td> </td>
</tr>
</tbody>
</таблица>
<br>
</td>
</tr>
</таблица>
</td>
</tr>
</таблица>
<% //Отображение сообщения об ошибке
}иначе если(strErr!=""){
%>
<table width="90%" border="0" cellpacing="0" cellpadding="5">
<тр>
<td><font size=+2><strong>Ошибка операции</strong></font></td>
</tr>
</таблица>
<table align=center cellpadding=5 cellpacing=0 width="90%">
<form name=dataForm2
action="<%=request.getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&fold=<%=UnicodeToChinese(reques
t.getParameter(" fold"))%>&act=renameFoldDo" метод="post">
<тело>
<tr bgcolor=#cccccc>
<td align=left bgcolor="#cccccc"><strong><font size="-1">Причина ошибки: </font></strong></td>
</tr>
<тр>
<td align=left><TT><font color="red"><%=strErr%></font></TT>
</td>
</tr>
<тр>
<td bgcolor=#cccccc align="center"><TT>[ <a href="javascript:history.go(-1);">Операция возврата</a> ]</TT> <tt >[
<a href="<%=request.getRequestURI()%>
?path=<%=UnicodeToChinese(request.getParameter("path"))%>&act=show">Вернуться в каталог</a>
]<input type=hidden name="changeDo" value="false"></tt> </td>
</tr>
</tbody>
</форма>
</таблица>
<%
}иначе если(strStat.equals("показать")){
//Отображение страницы в обычном режиме
%>
<table width="90%" border="0" cellpacing="0" cellpadding="5">
<тр>
<td><font size=+2><strong>Список каталогов:</strong></font></td>
</tr>
</таблица>
<table align=center cellpadding=5 cellpacing=0 width="90%">
<тело>
<tr bgcolor=#cccccc>
<td align=left><font size=+1><strong><font size="-1">Имя</font></strong></font><TT> (нажмите, чтобы войти в соответствующий каталог)< /font> ТТ></td>
<td align=center><font size=+1><strong><font size="-1">Время изменения</font></strong></font></td>
<td align=center><b><font size="-1">Переименовать</font></b></td>
<td align=center><b><font size="-1">Удалить</font></b></td>
</tr>
<%
//Отображение исходного цвета строк таблицы
Строка bgColor="";
//Если это не корневой каталог, выводим ссылку на верхний каталог
if(!(strDealPath.equals(strSysPath))){%>
<tr bgcolor=<%=bgColor%>>
<td align=left > <tt><font color=#000066 face=WingDings
size=4>0</font>
<a title="Нажмите, чтобы войти в верхний каталог" href="<%=request.getRequestURI()%>
?path=<%=(myFile.getParent())+" "%>&act=show ">Верхний каталог</a></tt></td>
<td align=right> </td>
<td align=center> </td>
<td align=center> </td>
</tr>
<%}
for(int i=0; i<fileArr.length; i++){
//Если это папка, отобразить ее
если (fileArr[i].isDirectory()){
//Чересстрочное преобразование цветов
bgColor=bgColor.equals("#eeeeee") ? "" : "#eeeeee";
%>
<tr bgcolor=<%=bgColor%>>
<td align=left > <tt><FONT color=#000066 face=WingDings
size=4>0</FONT>
<a title="Нажмите, чтобы войти в соответствующий каталог" href="<%=request.getRequestURI()%>
?path=<%=strDealPath+fileArr[i].getName() +" \"%>&act=show"><%=fileArr[i].getName()%></a></t
t></td>
<td align=center><tt><%=(new Date(fileArr[i].lastModified()))%></tt></td>
<td align=center><TT>
<a href="<%=request.getRequestURI()%>
?path=<%=strDealPath%>&fold=<%=fileArr[i].getName()%>&act=renameFold">Переименовать</a></TT></td>
<form name="dataFormFold<%=i%>" метод="post"
action="<%=request.getRequestURI()%>?path=<%=strDealPath%>&fold=<%=fileArr[i]. getName()%>&act=delFoldDo"><td
align=center><TT><a href="javascript:if(confirm('Вы действительно хотите удалить эту папку, все ее содержимое больше не будет доступно?
' )){ window.dataFormFold<%=i%>.submit();}">Удалить</a></TT></td></form>
</tr>
<%}
} %>
<tr align="center">
<td bgcolor=#cccccc colspan=4><TT>[ <a href="<%=request.getRequestURI()%>?path=<%=strDealPath%>&act=createF">Новая папка
</a>
]</TT></td>
</tr>
</tbody>
</таблица>
<table width="90%" border="0" cellpacing="0" cellpadding="5">
<тр>
<td><font size=+2><strong>Список файлов:</strong></font></td>
</tr>
</таблица>
<TABLE align=center cellPadding=5 cellSpacing=0 width="90%">
<ТЕЛО>
<TR bgColor=#cccccc>
<TD align=left><FONT size=+1><STRONG><font size="-1">Имя</font></STRONG></FONT><TT> (Нажмите, чтобы отредактировать соответствующий файл)< / ТТ></ТД>
<TD align=center><FONT size=+1><strong><font size="-1">размер</font></strong></FONT></TD>
<TD align=center><FONT size=+1><STRONG><font size="-1">Время изменения</font></STRONG></FONT></TD>
<TD align=center><b><font size="-1">Переименовать</font></b></TD>
<TD align=center><b><font size="-1">Удалить</font></b></TD>
</TR>
<%
bgColor="#ееееее";
если(fileArr.length!=0){
for(int i=0; i<fileArr.length; i++){
//Если это файл, отобразить его
если (fileArr[i].isFile()){
bgColor=bgColor.equals("#eeeeee") ? "" : "#eeeeee";
%>
<TR bgColor=<%=bgColor%>>
<TD align=left > <TT><FONT color=#000066 face=WingDings
size=4>3</FONT>
<a title="Нажмите, чтобы отредактировать соответствующий файл" href="<%=request.getRequestURI()%>
?path=<%=strDealPath%>&file=<%=fileArr[ i.getName()%>&act=edit"><%=fileArr[i].getName()%></
a></TT></TD>
<TD align=center><TT><%=fileArr[i].length()%></TT></TD>
<TD align=center><TT><%=(new Date(fileArr[i].lastModified()))%></TT></TD>
<TD align=center><TT>
<a href="<%=request.getRequestURI()%>
?path=<%=strDealPath%>&file=<%=fileArr[i].getName()%>&act=renameFile">Переименовать</a></TT></TD>
<form name="dataFormFile<%=i%>" метод="post"
action="<%=request.getRequestURI()%>?path=<%=strDealPath%>&file=<%=fileArr[i]. getName()%>&act=delFileDo"><TD
align=center><TT><a href="javascript:if(confirm('Вы действительно хотите удалить этот файл? Содержимое больше не будет доступно?
') ){window.dataFormFile <%=i%>.submit();}">Удалить</a></TT></TD></form>
</TR>
<%}
}
}еще {%>
<ТР>
<TD align=left> <TT>Нет файла</TT></TD>
<TD align=right> </TD>
<TD align=right> </TD>
<TD align=center> </TD>
<TD align=center> </TD>
</TR>
<%}%>
<TR выравнивание="центр">
<TD bgColor=#cccccc colSpan=5><TT>[ <a href="<%=request.getRequestURI()%>?path=<%=strDealPath%>&act=uploadFile">Загрузить
файл
</a> ]</TT></TD>
</TR>
</TBODY>
</ТАБЛИЦА>
<%
//Нормальное состояние отображения заканчивается
}иначе если(strStat.equals("edit")){
//Статус редактирования файла
BufferedReader bufReadIn=new BufferedReader(новый
FileReader(UnicodeToChinese(request.getParameter("путь"))+UnicodeToChinese(request.getParameter("файл"))));
Строка strContext="";
Строка strReadLine="";
%>
<table width="90%" border="0" cellpacing="0" cellpadding="5">
<тр>
<td><font size=+2><strong>Редактировать файл:</strong></font></td>
</tr>
</таблица>
<table align=center cellpadding=5 cellpacing=0 width="90%">
<form name=dataForm
action="<%=request.getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&file=<%=UnicodeToChinese(reques
t.getParameter(" файл"))%>&act=editDo" метод="post">
<тело>
<tr bgcolor=#cccccc>
<td align=left><font size=+1><strong><font size="-1">Имя файла</font></strong></font><tt><font color=#000066
face= КрыльяДингс
size=4>3</font><%=(UnicodeToChinese(request.getParameter("path"))+UnicodeToChinese(request.getParameter("file")))%></tt></td>
</tr>
<тр>
<td align=center><textarea name="fileData" rows=18 cols=70 Wrap=""OFF""><%
while((strReadLine=bufReadIn.readLine())!=null)
out.println(strReadLine);
bufReadIn.close();%></textarea></td>
</tr>
<тр>
<td bgcolor=#cccccc align="center">
<TT>[ <a href="javascript:window.dataForm.submit();">Отправить контент</a> ]</TT> <TT>[ <a
href="<%=request. getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&act=show">Вернуться в каталог</a> ]</TT>
</td>
</tr>
</tbody>
</форма>
</таблица>
<%
}иначе если(strStat.equals("createF")){
%>
<table width="90%" border="0" cellpacing="0" cellpadding="5">
<тр>
<td><font size=+2><strong>Создать папку:</strong></font></td>
</tr>
</таблица>
<table align=center cellpadding=5 cellpacing=0 width="90%">
<form name=dataForm
action="<%=request.getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&act=createFDo" метод="post">
<тело>
<tr bgcolor=#cccccc>
<td align=left><font size=+1><strong><font size="-1">Папка, которую вы хотите создать, находится в</font></strong></font><font color=# 000066
face=WingDings
size=4>0</font><tt><%=(UnicodeToChinese(request.getParameter("path")))%></tt><font size=+1><strong><font size="- 1">Вниз
</font></strong></font></td>
</tr>
<тр>
<td align=влево>
<TT>Новое имя папки:</TT><input type=text name=foldName value="" maxlength="50" size="50">
</td>
</tr>
<тр>
<td bgcolor=#cccccc align="center"> <tt>[ <a href="javascript:if (checkForm()==false);">Отправить контент</a>
]</tt> <tt>[
<a href="<%=request.getRequestURI()%>
?path=<%=UnicodeToChinese(request.getParameter("path"))%>&act=show">Вернуться к оглавлению</a>
]</tt> </td>
</tr>
</tbody>
</форма>
</таблица>
<%
}иначе если(strStat.equals("renameFold"))
{ %>
<table width="90%" border="0" cellpacing="0" cellpadding="5">
<тр>
<td><font size=+2><strong>Переименовать папку:</strong></font></td>
</tr>
</таблица>
<table align=center cellpadding=5 cellpacing=0 width="90%">
<form name=dataForm2
action="<%=request.getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&fold=<%=UnicodeToChinese(reques
t.getParameter(" fold"))%>&act=renameFoldDo" метод="post">
<тело>
<tr bgcolor=#cccccc>
<td align=left><font size=+1><strong><font size="-1">Папка, которую вы хотите переименовать</font></strong></font><font color=#000066
face =ВингДингс
size=4>0</font><tt><%=(UnicodeToChinese(request.getParameter("путь"))+UnicodeToChinese(request.getParameter("fold"))+" \")% ><
/tt ></тд>
</tr>
<тр>
<td align=left> <tt>Имя переименованной папки:</tt>
<input type=text name=newFoldName value="<%=UnicodeToChinese(request.getParameter("fold"))%>" maxlength="50"
size="50">
</td>
</tr>
<тр>
<td bgcolor=#cccccc align="center"> <tt>[ <a href="javascript:if (checkForm2()==false);">Отправить контент</a>
]</tt> <tt>[
<a href="<%=request.getRequestURI()%>
?path=<%=UnicodeToChinese(request.getParameter("path"))%>&act=show">Вернуться к оглавлению</a>
]<input type=hidden name="changeDo" value="false"></tt> </td>
</tr>
</tbody>
</форма>
</таблица>
<%
}иначе если(strStat.equals("renameFile"))
{%>
<table width="90%" border="0" cellpacing="0" cellpadding="5">
<тр>
<td><font size=+2><strong>Переименовать файл:</strong></font></td>
</tr>
</таблица>
<table align=center cellpadding=5 cellpacing=0 width="90%">
<form name=dataForm3
action="<%=request.getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&file=<%=UnicodeToChinese(reques
t.getParameter(" file"))%>&act=renameFileDo" метод="post">
<тело>
<tr bgcolor=#cccccc>
<td align=left><font size=+1><strong><font size="-1">Файл, который вы хотите переименовать</font></strong></font><font color=#000066
face =ВингДингс
size=4>3</font><tt><%=(UnicodeToChinese(request.getParameter("path"))+UnicodeToChinese(request.getParameter("file")))%></tt><
/td>
</tr>
<тр>
<td align=left> <tt>Имя переименованного файла:</tt>
<input type=text name=newFileName value="<%=UnicodeToChinese(request.getParameter("file"))%>" maxlength="50"
size="50">
</td>
</tr>
<тр>
<td bgcolor=#cccccc align="center"> <tt>[ <a href="javascript:if (checkForm3()==false);">Отправить контент</a>
]</tt> <tt>[
<a href="<%=request.getRequestURI()%>
?path=<%=UnicodeToChinese(request.getParameter("path"))%>&act=show">Вернуться к оглавлению</a>
]
<input type=hidden name="changeDo" value="false">
</tt> </td>
</tr>
</tbody>
</форма>
</таблица>
<%
}иначе если(strStat.equals("uploadFile")){
%>
<table width="90%" border="0" cellpacing="0" cellpadding="5">
<тр>
<td><font size=+2><strong>Загрузить файлы:</strong></font></td>
</tr>
</таблица>
<table align=center cellpadding=5 cellpacing=0 width="90%">
<form name=dataForm4
action="<%=request.getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&act=uploadFileDo" метод="post"
ENCTYPE="multipart /форма-данные">
<тело>
<tr bgcolor=#cccccc>
<td align=left><font size=+1><strong><font size="-1">Файл, который вы хотите загрузить, находится по адресу</font></strong></font><font color=# 000066
лицо =WingDings
size=4>0</font><tt><%=(UnicodeToChinese(request.getParameter("path")))%></tt><font size=+1><strong><font size="- 1">Вниз
</font></strong></font></td>
</tr>
<тр>
<td align=left> <tt>Выберите загруженный файл:</tt>
<INPUT TYPE="FILE" NAME="fileName" SIZE="30"></td>
</tr>
<тр>
<td bgcolor=#cccccc align="center"> <tt>[ <a href="javascript:if (checkForm4()==false);">Отправить контент</a>
]</tt> <tt>[
<a href="<%=request.getRequestURI()%>
?path=<%=UnicodeToChinese(request.getParameter("path"))%>&act=show">Вернуться к оглавлению</a>
]
</tt> </td>
</tr>
</tbody>
</форма>
</таблица>
<%
}
%>
<br>
<br>
<час>
<TT>&Copy;Авторские права: Jarard·Ast Версия: Упрощенный китайский 1.00</TT>
<br><TT>С любыми комментариями и предложениями обращайтесь по адресу: <a href=" mailto:[email protected]"><font color=red>[email protected]</font></a></ ТТ>
</div>
</BODY></HTML>
<ЯЗЫК СКРИПТА=javascript>
<!--
<%
//Функция, которая отображает разные параметры обнаружения на основе разных параметров
if(strStat.equals("логин")) {%>
функция проверки формы()
{
var Checkblank = /^(s*|( )|(.))*$/;
if (Checkblank.test(dataform.username.value))
{
alert("Имя для входа не может быть пустым!");
вернуть ложь;
}
если (Checkblank.test(dataform.userpass.value))
{
alert("Пароль не может быть пустым!");
вернуть ложь;
}
окно.dataform.submit()
;
<%}else if(strStat.equals("createFold")) {%>
функция проверкиФормы()
{
var Checkblank = /^(s*|( )|(.))*$/;
если (Checkblank.test(dataForm.foldName.value))
{
alert("Имя новой папки не может быть пустым!");
dataForm.foldName.focus();
вернуть ложь;
}
var SPECIAL_STR = " \/:*? "><|";
for(i=0;i<(dataForm.foldName.value).length;i++)
{
if (SPECIAL_STR.indexOf((dataForm.foldName.value).charAt(i)) !=-1)
{
alert("Имя папки не может содержать следующие символы \/:*? "><|");
dataForm.foldName.focus();
вернуть ложь;
}
}
окно.dataForm.submit();
}
<%}else if(strStat.equals("renameFold")) {%>
функция проверкиФормы2()
{
var Checkblank = /^(s*|( )|(.))*$/;
если (Checkblank.test(dataForm2.newFoldName.value))
{
alert("Имя переименованной папки не может быть пустым!");
dataForm2.newFoldName.focus();
вернуть ложь;
}
var SPECIAL_STR = " \/:*? "><|";
for(i=0;i<(dataForm2.newFoldName.value).length;i++)
{
if (SPECIAL_STR.indexOf((dataForm2.newFoldName.value).charAt(i)) !=-1)
{
alert("Имя папки не может содержать следующие символы \/:*? "><|");
dataForm2.newFoldName.focus();
вернуть ложь;
}
}
//Если имя файла отличается от исходного имени файла после переименования, отметьте параметр, чтобы указать, что действие переименования действительно произошло.
if(dataForm2.newFoldName.value!="<%=UnicodeToChinese(request.getParameter("fold"))%>")
{
window.dataForm2.changeDo.value="true";
}
еще
{
alert("Пожалуйста, введите новое имя папки!");
dataForm2.newFoldName.focus();
вернуть ложь;
}
окно.dataForm2.submit()
}
<%}else if(strStat.equals("renameFile"))
{%>
функция проверкиФормы3()
{
var Checkblank = /^(s*|( )|(.))*$/;
если (Checkblank.test(dataForm3.newFileName.value))
{
alert("Имя переименованной папки не может быть пустым!");
dataForm3.newFileName.focus();
вернуть ложь;
}
var SPECIAL_STR = " \/:*? "><|";
for(i=0;i<(dataForm3.newFileName.value).length;i++)
{
if (SPECIAL_STR.indexOf((dataForm3.newFileName.value).charAt(i)) !=-1)
{
alert("Имя файла не может содержать следующие символы \/:*? "><|");
dataForm3.newFileName.focus();
вернуть ложь;
}
}
//Если имя файла отличается от исходного имени файла после переименования, отметьте параметр, чтобы указать, что действие переименования действительно произошло.
if(dataForm3.newFileName.value!="<%=UnicodeToChinese(request.getParameter("file"))%>")
{
window.dataForm3.changeDo.value="true";
}
еще
{
alert("Пожалуйста, введите новое имя файла!");
dataForm3.newFileName.focus();
вернуть ложь;
}
window.dataForm3.submit()
}
<%}else if(strStat.equals("uploadFile")){%>;
функция проверкиФормы4()
{
var Checkblank = /^(s*|( )|(.))*$/;
если (Checkblank.test(dataForm4.fileName.value))
{
alert("Имя переименованной папки не может быть пустым!");
dataForm4.имяфайла.фокус();
вернуть ложь;
}
window.dataForm4.submit()
}
<%}%>;
//-->
</СКРИПТ>