فكرة التصميم وراء تطوير هذا الملف هي هذه. غالبًا ما يكون لدى بعض مواقع الويب أو عملاء برامج B/S متطلبات خاصة للحصول على تفاصيل معينة أثناء مرحلة التثبيت وتصحيح أخطاء البرنامج، ربما تعديلات الخط، أو تغييرات صغيرة في الواجهة. في مواجهة مثل هذا الموقف، إذا لم يفتح المستخدم وظيفة FTP، فغالبًا ما يتعين على موظفي التطوير والصيانة الذهاب إلى الموقع للقيام ببعض أعمال التصحيح الصغيرة.
وهذا مضيعة للوقت والقوى البشرية والموارد المادية.
في ظل هذه الظروف، قمت بتطوير ملف JSP ذو الصفحة الواحدة مع وظائف إدارة الملفات. ويوفر وظائف إضافة المجلدات وإعادة تسميتها وحذفها وتعديل الملفات وإعادة تسميتها وحذفها وتحميلها. يمكنه بشكل أساسي تلبية أعمال التعديل الصغيرة أثناء مرحلة التثبيت والتصحيح للبرنامج.
لأسباب أمنية، توفر صفحة JSP هذه وظيفة تسجيل دخول بسيطة للمستخدم.
قبل الاستخدام، ضع هذا الملف في ملف موقع الويب أو أي دليل لمنتج B/S. افتح أذونات القراءة والكتابة لدليل تثبيت الملفات. يمكن للمستخدمين تسجيل الدخول عن بعد إلى صفحة JSP لممارسة وظائف الإدارة. بعد اكتمال مرحلة التثبيت والصيانة، يرجى تعديل أذونات القراءة والكتابة لدليل تثبيت الملف وحذف الملف لتجنب المخاطر الأمنية.
بشكل افتراضي، اسم مستخدم تسجيل الدخول هو: admin وكلمة المرور هي:
بيئة تطوير Oddworld jakarta-tomcat-4.0.3.exe
ملاحظة: لأن وظيفة تحميل الملفات لهذا البرنامج يجب أن تكون مدعومة بواسطة مكون التحميل الذكي. يرجى وضع التحميل الذكي ضمن مجلد web-inf المقابل لـ Tomcat. إذا كانت المكونات التي تدعم تحميلها مختلفة، فيرجى إجراء التعديلات بنفسك.
تعليمات تطوير موجزة: لأن هذه الوثيقة ليست معقدة، وأشعر أنه على الرغم من أن وصف الوثيقة ليس موحدًا، إلا أنه مفصل أيضًا، لذلك أنوي فقط شرح بعض التفاصيل الصغيرة بإيجاز.
1. عندما يقوم هذا الملف بتنفيذ عمليات دليل الملف، يتم تمرير الدليل مباشرة كمعلمة دون التحويل المقابل. وذلك لأنه في جافا، يمكن اعتبار "الأحرف الإنجليزية" بمثابة أحرف هروب، مما يسبب مشاكل غير متوقعة أثناء معالجة الأحرف، لذلك أعتقد أنه من المعقول استخدام الدليل مباشرة كمعلمة.
2. يستخدم هذا المستند الاتصالات بدلاً من الأزرار عند إرسال بعض النماذج، وذلك لأنه عندما تعالج JavaScript سلاسل باستخدام ""، فإنها قد تعالج أيضًا أحرف الهروب. لذلك، من أجل منع هذا الموقف، تستخدم عمليات الإرسال التي تمر بمعلمات الدليل نموذج الاتصال.
3. strStat وstrErr عبارة عن سلسلتين يتم تشغيلهما في جميع أنحاء الملف. الأولى عبارة عن أمر حكم للعمليات التي ستنفذها الصفحة، والأخيرة عبارة عن مطالبة بالمعلومات عن الأخطاء في جميع العمليات.
4. لن أقدم أي تفسير لأي نزاعات تتعلق بالسلامة أو غيرها من النزاعات التي قد تنشأ عن هذه الوثيقة. أنا فقط أقدم هذا الملف كأداة مجانية للرجوع إليها واستخدامها من قبل الجميع.
-------------------------------------------------- ---------------
محتوى الملف admin.jsp
<%-- نظام إدارة ملفات موقع الويب الغريب (النسخة الصينية المبسطة) 10 أكتوبر 2003
حقوق الطبع والنشر بواسطة joard Ast
وظيفة 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 "";
String newstring=null;
newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
إرجاع سلسلة الأخبار؛
}
قبض على (UnsupportedEncodingException ه)
{
العودة ق.
}
}
سلسلة ثابتة عامة ChineseToUnicode(String s){
يحاول{
if(s==null||s.equals("")) return "";
String newstring=null;
newstring=new String(s.getBytes("gb2312"),"ISO8859_1");
إرجاع سلسلة الأخبار؛
}
قبض على (UnsupportedEncodingException ه)
{
العودة ق.
}
}
%>
<%
// مشكلة التحديث
Response.setHeader("Pragma"،"No-cache");
Response.setHeader("التحكم في ذاكرة التخزين المؤقت"،"no-cache");
Response.setDateHeader("انتهاء الصلاحية"، 0);
// تخصيص كلمة المرور واسم المستخدم لتسجيل الدخول
// اسم المستخدم الصحيح
اسم مستخدم السلسلة = "المسؤول"
// كلمة المرور الصحيحة
String userpass="oddworld";
// احصل على مسار النظام
ServletContext app=(ServletContext)pageContext.getServletContext();
String strSysPath = app.getRealPath("/");
// معالجة المسار الفعلي للكائن
String strDealPath = ""؛
// عرض رسالة الخطأ
سلسلة strErr = ""؛
// يمثل حالة عرض الصفحة، تسجيل الدخول هو عرض صفحة تسجيل الدخول؛ العرض هو عرض معلومات الملف بشكل طبيعي؛ التحرير هو عرض صفحة التحرير
؛ صفحة إنشاء المجلدات؛ createFDo هي عملية إنشاء المجلد؛ renameFold هي الصفحة التي تعرض اسم
المجلد
؛ renameFoldDo هي عملية تغيير اسم المجلد؛ الصفحة التي تعرض اسم الملف؛ renameFileDo هي عملية تغيير اسم الملف؛
delFileDo هي عملية حذف الملفات؛
String strStat = "login"؛
// المصفوفة المستخدمة لعرض الملفات في حالة العرض
File[] fileArr=null;
// احصل على المسار الفعلي للكائن المراد معالجته بناءً على معلمة المسار التي تم تمريرها
إذا (request.getParameter("path")==null || request.getParameter("path").equals("")){
strDealPath=strSysPath;
}آخر{
// احصل على معلمات المسار
strDealPath=UnicodeToChinese(request.getParameter("path"));
}
//تحقق من وجود قيمة الجلسة، وإذا لم تكن موجودة، فاعرض رسالة خطأ
//HttpSession session = request.getSession(false);
إذا (session.getValue("loginIn")==null || !session.getValue("loginIn").equals("pass"))
{
strStat = "تسجيل الدخول"؛
strErr="لم تقم بتسجيل الدخول أو انتهت مهلة تسجيل الدخول، يرجى تسجيل الدخول مرة أخرى!";
}
// أنشئ كائن ملف وتحقق من وجود الدليل
File myFile=new File(strDealPath);
//تحقق من وجود المجلد
إذا (!myFile.exists()){
strErr="المجلد الذي حددته غير موجود، يرجى تحديده مرة أخرى!";
}
// وفقًا لمعلمات مختلفة، قم بتنفيذ العمليات المقابلة
إذا (request.getParameter("act")==null || request.getParameter("act").equals("") ||
request.getParameter("act").equals("تسجيل الدخول"))
{
if(request.getParameter("اسم المستخدم")!=null && request.getParameter("userpass")!=null)
{
// تصحيح كلمة المرور المشفرة MD5
//String userpass="OEEO99107DC8C1EE2E06666B965601EF";
إذا (request.getParameter("اسم المستخدم").equals(اسم المستخدم) && (request.getParameter("userpass")).equals(userpass))
{
session.putValue("loginIn"،"pass")؛
Response.sendRedirect(request.getRequestURI()+"?act=show");
}
}
آخر {
strStat = "تسجيل الدخول"؛
strErr="لم تقم بتسجيل الدخول أو انتهت مهلة تسجيل الدخول، يرجى تسجيل الدخول مرة أخرى!";
}
}else if(request.getParameter("act").equals("show")){
// افتراضيًا، تعرض الصفحة معلومات الملف بشكل طبيعي statStat="show"
strStat = "إظهار"؛
// إنشاء مصفوفة قائمة الملفات
fileArr=myFile.listFiles();
}else if(request.getParameter("act").equals("edit"))
{
// صفحة لتحرير محتوى الملف
// وفقًا لما إذا كان هناك request.getParameter("file") وما إذا كان الملف المقابل موجودًا، فقم بإجراء عملية التحرير. وإذا لم يكن الأمر كذلك، فاعرض رسالة خطأ.
إذا (!(request.getParameter("file")==null || request.getParameter("file").equals(""))){
File fileEdit=new
File(UnicodeToChinese(request.getParameter("path"))+UnicodeToChinese(request.getParameter("file")));
إذا (fileEdit.exists ())
// عملية تحرير الملف هي في الواقع تغيير عرض الصفحة واستخدام منطقة النص لعرض معلومات الملف للتحرير.
strStat = "تحرير"؛
آخر
// عرض رسالة الخطأ
strErr="الملف الذي حددته غير موجود، يرجى تحديده مرة أخرى!";
}آخر{
strErr="لم تقم بتحديد الملف لتحريره، يرجى التحديد مرة أخرى!";
}
}else if(request.getParameter("act").equals("editDo"))
{
// اكتب المحتوى المعدل في الملف وارجع إلى صفحة التعديل
إذا (!(request.getParameter("file")==null || request.getParameter("file").equals("")))
{
File fileEdit=new
File(UnicodeToChinese(request.getParameter("path"))+UnicodeToChinese(request.getParameter("file")));
إذا (fileEdit.exists ())
{
// عملية تحرير الملف هي في الواقع استخدام منطقة نصية لعرض محتوى الملف على الصفحة بعد تعديل محتوى الملف، ومتابعة التحرير أو
عرض تأثير التعديل.
إذا (!(request.getParameter("fileData")==null))
{
يحاول{
PrintWriter pwEdit =null;
pwEdit=new PrintWriter(new
FileOutputStream(UnicodeToChinese(request.getParameter("path"))+UnicodeToChinese(request.getParameter("file"))));
pwEdit.println(UnicodeToChinese(request.getParameter("fileData")));
pwEdit. Close();
Response.sendRedirect(request.getRequestURI()+"?path="+
UnicodeToChinese(request.getParameter("path")) +"&file="+ UnicodeToChinese(request.getParameter("file")) +"&act=edit" );
يعود؛
}قبض(استثناء ه){
strErr="خطأ في كتابة الملف، يرجى التحديد مرة أخرى!";
}
}آخر{
strErr="معلمة تعديل محتوى الملف مفقودة، يرجى التحديد مرة أخرى!";
}
}آخر
// عرض رسالة الخطأ
strErr="الملف الذي حددته غير موجود، يرجى تحديده مرة أخرى!";
}آخر{
strErr="لم تقم بتحديد الملف لتحريره، يرجى التحديد مرة أخرى!";
}
}else if(request.getParameter("act").equals("createF"))
{
// اعرض الصفحة لإنشاء مجلد جديد
strStat="createF";
}else if(request.getParameter("act").equals("createFDo"))
{
// إنشاء مجلد جديد
String strFoldName=strDealPath+UnicodeToChinese(request.getParameter("foldName")).trim()+"\";
//out.println(strFoldName);
//out. Close();
ملف fileCreateF=new File(strFoldName);
إذا (! fileCreateF.exists())
{
يحاول{
fileCreateF.mkdir();
Response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");
يعود؛
}قبض(استثناء ه){
strErr="فشل إنشاء مجلد جديد!";
}
}
آخر
{
strErr="اسم المجلد المحدد هو نفس اسم المجلد الموجود، يرجى تحديد اسم مجلد جديد!";
}
}else if(request.getParameter("act").equals("delFoldDo"))
{
//حذف العملية
يحاول{
String strFileDelF=strDealPath+UnicodeToChinese(request.getParameter("fold"))+"\";
File fileDelF=new File(strFileDelF);
إذا (fileDelF.exists()){
File[] fileArrCheck=fileDelF.listFiles();
إذا (!(fileArrCheck.length>0))
{
fileDelF.delete();
Response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");
يعود؛
}آخر
{
strErr="لا يزال المجلد يحتوي على ملفات، يرجى حذف جميع الملفات ثم حذف المجلد";
}
}آخر{
strErr="المجلد المراد حذفه غير موجود، يرجى التحديد مرة أخرى";
}
}قبض (استثناء ه)
{
strErr="خطأ في عملية حذف المجلد!";
}
}else if(request.getParameter("act").equals("renameFold"))
{
strStat="renameFold";
}else if(request.getParameter("act").equals("renameFoldDo"))
{
// عملية إعادة تسمية المجلد
// تحديد ما إذا كان هناك تغيير في اسم المجلد بناءً على المعلمات
إذا (request.getParameter("changeDo").equals("true"))
{
// يوجد اسم ملف، ويتم تغيير الاسم
يحاول{
String strFileRenameF=strDealPath+UnicodeToChinese(request.getParameter("fold"))+"\";
File fileRenameF=new File(strFileRenameF);
String strFileRenameToF=strDealPath+UnicodeToChinese(request.getParameter("newFoldName"))+"\";
File fileRenameToF=new File(strFileRenameToF);
// تحديد ما إذا كان المجلد المعاد تسميته موجودًا أم لا
إذا (fileRenameF.exists()){
// تحديد ما إذا كان اسم المجلد الجديد له نفس اسم المجلد الموجود
إذا (! fileRenameToF.exists())
{
fileRenameF.renameTo(fileRenameToF);
Response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");
يعود؛
}آخر
{
strErr="اسم المجلد المحدد هو نفس اسم المجلد الموجود، يرجى تحديد اسم مجلد جديد!";
}
}آخر{
strErr="المجلد المراد إعادة تسميته غير موجود، يرجى التحديد مرة أخرى";
}
}قبض (استثناء ه)
{
strErr="خطأ في عملية إعادة تسمية المجلد!";
}
}
}else if(request.getParameter("act").equals("renameFile"))
{
strStat="renameFile";
}else if(request.getParameter("act").equals("renameFileDo"))
{
// عملية إعادة تسمية الملف
// تحديد ما إذا كان هناك تغيير في اسم الملف بناءً على المعلمات
إذا (request.getParameter("changeDo").equals("true"))
{
// يوجد اسم ملف، ويتم تغيير الاسم
يحاول{
String strFileRenameFi=strDealPath+UnicodeToChinese(request.getParameter("file"));
File fileRenameFi=new File(strFileRenameFi);
String strFileRenameToFi=strDealPath+UnicodeToChinese(request.getParameter("newFileName"));
File fileRenameToFi=new File(strFileRenameToFi);
// تحديد ما إذا كان الملف المعاد تسميته موجودًا أم لا
إذا (fileRenameFi.exists()){
// تحديد ما إذا كان اسم الملف الجديد له نفس اسم الملف الموجود
إذا (! fileRenameToFi.exists())
{
fileRenameFi.renameTo(fileRenameToFi);
Response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");
يعود؛
}آخر
{
strErr="اسم الملف المحدد هو نفس اسم الملف الموجود، يرجى تحديد اسم ملف جديد!";
}
}آخر{
strErr="الملف المراد إعادة تسميته غير موجود، يرجى التحديد مرة أخرى";
}
}قبض (استثناء ه)
{
strErr="خطأ في عملية إعادة تسمية الملف!";
}
}
}else if(request.getParameter("act").equals("delFileDo"))
{
//حذف العملية
يحاول{
String strFileDelFi=strDealPath+UnicodeToChinese(request.getParameter("file"));
File fileDelFi=new File(strFileDelFi);
إذا (fileDelFi.exists ())
{
fileDelFi.delete();
Response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");
يعود؛
}آخر{
strErr="الملف المراد حذفه غير موجود، يرجى التحديد مرة أخرى";
}
}قبض (استثناء ه)
{
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);
mySmartUpload.setTotalMaxFileSize(1000000);
حاول {
mySmartUpload.upload();
mySmartUpload.save(strDealPath);
Response.sendRedirect(request.getRequestURI()+"?path="+strDealPath+"&act=show");
يعود؛
} قبض (الاستثناء ه) {
strErr="خطأ في تحميل الملف، يرجى التحقق مما إذا كان قد تم تجاوز الحد الأقصى لحجم الملف وهو 1M!";
}
}
%>
<%
println(strStat);
%>
<HTML><HEAD><TITLE>قائمة الدليل لـ /</TITLE>
<محتوى META = "text/html; مجموعة الأحرف = utf-8" http-equiv=Content-Type>
<محتوى META = "MSHTML 5.00.2920.0" name=GENERATOR></HEAD>
<الجسم bgColor=أبيض>
<div محاذاة = "المركز">
<حدود الجدول=0 خلية الحشو=5 تباعد الخلايا=0 العرض='90%'>
<الجسم>
<تر>
<td align=left bgcolor=#000066 valign=bottom><font color=#ffffffface=宋体
size=4 روماني جديد ?times><b> مدير ملفات الموقع</b></font></td>
<td align=right bgcolor=#000066 valign=bottom><font color=#ffffffface=宋体
size=4 Roman?times><b> <strong><%=request.getContextPath()%></strong></b></font></td>
</tr>
</tbody>
</الجدول>
<عرض الجدول = "90%" الحدود = "0" تباعد الخلايا = "0" خلية الحشو = "5">
<تر>
<td><font size="2"><b>المسار الفعلي:</b><%=strDealPath%></font></td>
</tr>
</الجدول>
<ر>
<% إذا (strStat.equals("تسجيل الدخول")){%>
<عرض الجدول = "300" الحدود = "0" تباعد الخلايا = "1" خلية الحشو = "0" >
<تر>
<td height = "200" valign = "top" align = "center">
<p align="center">
<عرض الجدول = "100%" الحدود = "0" تباعد الخلايا = "1" خلية الحشو = "5" bgcolor=#999999 class=a9px>
<تر>
<td bgcolor="#cccccc"><font size=+2>تسجيل الدخول</font></td>
</tr>
<تر>
<td bgcolor="#FFFFFF" valign="top" align="center">
<عرض الجدول = "100%" الحدود = "0" تباعد الخلايا = "0" خلية الحشو = "0">
<form name=dataform Method=post action='<%=request.getRequestURI()%>?act=login'>
<تر>
<td width="100"><b><font size="-1">اسم تسجيل الدخول: </font></b></td>
<TD>
<إدخال الحد الأقصى للطول = 16
الاسم = "اسم المستخدم" القيمة = "">
</TD>
</tr>
<تر>
<td width="100"><b><font size="-1">كلمة المرور:</font></b></td>
<TD>
<فئة الإدخال = الطول الأقصى = 16
الاسم = "قيمة مرور المستخدم" = "">
</TD>
</tr>
</النموذج>
</الجدول>
<ر>
<حدود الجدول=0 خلية الحشو=0 تباعد الخلايا=0>
<الجسم>
<تر>
<TD>
<اسم الإدخال=تحديث onClick="javascript:if (checkform()==false);" type=button value="Login">
</TD>
<td> </td>
<td> </td>
</tr>
</tbody>
</الجدول>
<ر>
</TD>
</tr>
</الجدول>
</TD>
</tr>
</الجدول>
<% // عرض رسالة الخطأ
}آخر إذا(strErr!=""){
%>
<عرض الجدول = "90%" الحدود = "0" تباعد الخلايا = "0" خلية الحشو = "5">
<تر>
<td><font size=+2><strong>خطأ في العملية</strong></font></td>
</tr>
</الجدول>
<محاذاة الجدول=حشوة الخلية المركزية=5 تباعد الخلايا=0 العرض='90%'>
<form name=dataForm2
action="<%=request.getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&fold=<%=UnicodeToChinese(reques
t.getParameter(" Fold)))%>&act=renameFoldDo"method="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>
</النموذج>
</الجدول>
<%
}else if(strStat.equals("show")){
// عرض الصفحة بشكل طبيعي
%>
<عرض الجدول = "90%" الحدود = "0" تباعد الخلايا = "0" خلية الحشو = "5">
<تر>
<td><font size=+2><strong>قائمة الدليل:</strong></font></td>
</tr>
</الجدول>
<محاذاة الجدول=حشوة الخلية المركزية=5 تباعد الخلايا=0 العرض='90%'>
<الجسم>
<tr bgcolor=#cccccc>
<td align=left><font size=+1><strong><font size="-1">الاسم</font></strong></font><TT> (انقر لإدخال الدليل المقابل)< /الخط> TT></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 = ""؛
// إذا لم يكن الدليل الجذر، فاعرض رابطًا للدليل العلوي
إذا(!(strDealPath.equals(strSysPath))){%>
<tr bgcolor=<%=bgColor%>>
<td align=left > <tt><font color=#000066face=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") ?
%>
<tr bgcolor=<%=bgColor%>>
<td align=left > <tt><FONT color=#000066face=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%>"method="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>
</الجدول>
<عرض الجدول = "90%" الحدود = "0" تباعد الخلايا = "0" خلية الحشو = "5">
<تر>
<td><font size=+2><strong>قائمة الملفات:</strong></font></td>
</tr>
</الجدول>
<TABLE align=centre 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="#eeeeee";
إذا (fileArr.length!=0){
for(int i=0; i<fileArr.length; i++){
// إذا كان ملفًا، فاعرضه
إذا (fileArr[i].isFile()){
bgColor=bgColor.equals("#eeeeee") ?
%>
<TR bgColor=<%=bgColor%>>
<TD align=left> <TT><FONT color=#000066face=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%>"method="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>
<%}
}
}آخر {%>
<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>
</الجدول>
<%
// تنتهي حالة العرض العادية
}else if(strStat.equals("تحرير")){
// حالة تحرير الملف
BufferedReader bufReadIn=new BufferedReader(new
FileReader(UnicodeToChinese(request.getParameter("path"))+UnicodeToChinese(request.getParameter("file"))));
سلسلة strContext = ""؛
سلسلة strReadLine = ""؛
%>
<عرض الجدول = "90%" الحدود = "0" تباعد الخلايا = "0" خلية الحشو = "5">
<تر>
<td><font size=+2><strong>تحرير الملف:</strong></font></td>
</tr>
</الجدول>
<محاذاة الجدول=حشوة الخلية المركزية=5 تباعد الخلايا=0 العرض='90%'>
<form name=dataForm
action="<%=request.getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&file=<%=UnicodeToChinese(reques
t.getParameter(" file)))%>&act=editDo"method="post">
<الجسم>
<tr bgcolor=#cccccc>
<td align=left><font size=+1><strong><font size="-1">اسم الملف</font></strong></font><tt><font color=#000066face
= ويندينجز
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""><%
بينما ((strReadLine=bufReadIn.readLine())!=null)
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>
</النموذج>
</الجدول>
<%
}else if(strStat.equals("createF")){
%>
<عرض الجدول = "90%" الحدود = "0" تباعد الخلايا = "0" خلية الحشو = "5">
<تر>
<td><font size=+2><strong>إنشاء مجلد:</strong></font></td>
</tr>
</الجدول>
<محاذاة الجدول=حشوة الخلية المركزية=5 تباعد الخلايا=0 العرض='90%'>
<form name=dataForm
action="<%=request.getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&act=createFDo"method="post">
<الجسم>
<tr bgcolor=#cccccc>
<td align=left><font size=+1><strong><font size="-1">المجلد الذي تريد إنشاءه موجود</font></strong></font><font color=# 000066
وجه=أجنحة الأجنحة
size=4>0</font><tt><%=(UnicodeToChinese(request.getParameter("path")))%></tt><font size=+1><strong><font size="- 1">أسفل
</font></strong></font></td>
</tr>
<تر>
<td محاذاة = يسار>
<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>
</النموذج>
</الجدول>
<%
}else if(strStat.equals("renameFold"))
{%>
<عرض الجدول = "90%" الحدود = "0" تباعد الخلايا = "0" خلية الحشو = "5">
<تر>
<td><font size=+2><strong>إعادة تسمية المجلد:</strong></font></td>
</tr>
</الجدول>
<محاذاة الجدول=حشوة الخلية المركزية=5 تباعد الخلايا=0 العرض='90%'>
<form name=dataForm2
action="<%=request.getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&fold=<%=UnicodeToChinese(reques
t.getParameter(" Fold)))%>&act=renameFoldDo"method="post">
<الجسم>
<tr bgcolor=#cccccc>
<td align=left><font size=+1><strong><font size="-1">المجلد الذي تريد إعادة تسميته</font></strong></font><font color=#
000066face =WingDings
size=4>0</font><tt><%=(UnicodeToChinese(request.getParameter("path"))+UnicodeToChinese(request.getParameter("fold"))+" \")% ><
/tt ></تد>
</tr>
<تر>
<td align=left> <tt>اسم المجلد المعاد تسميته:</tt>
<نوع الإدخال=اسم النص=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>
</النموذج>
</الجدول>
<%
}else if(strStat.equals("renameFile"))
{%>
<عرض الجدول = "90%" الحدود = "0" تباعد الخلايا = "0" خلية الحشو = "5">
<تر>
<td><font size=+2><strong>إعادة تسمية الملف:</strong></font></td>
</tr>
</الجدول>
<محاذاة الجدول=حشوة الخلية المركزية=5 تباعد الخلايا=0 العرض='90%'>
<form name=dataForm3
action="<%=request.getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&file=<%=UnicodeToChinese(reques
t.getParameter(" file)))%>&act=renameFileDo"method="post">
<الجسم>
<tr bgcolor=#cccccc>
<td align=left><font size=+1><strong><font size="-1">الملف الذي تريد إعادة تسميته</font></strong></font><font color=#
000066face =WingDings
size=4>3</font><tt><%=(UnicodeToChinese(request.getParameter("path"))+UnicodeToChinese(request.getParameter("file")))%></tt><
/td>
</tr>
<تر>
<td align=left> <tt>اسم الملف المعاد تسميته:</tt>
<نوع الإدخال=اسم النص=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>
]
<نوع الإدخال = الاسم المخفي = "تغيير القيمة" = "خطأ">
</tt> </td>
</tr>
</tbody>
</النموذج>
</الجدول>
<%
}else if(strStat.equals("uploadFile")){
%>
<عرض الجدول = "90%" الحدود = "0" تباعد الخلايا = "0" خلية الحشو = "5">
<تر>
<td><font size=+2><strong>رفع الملفات:</strong></font></td>
</tr>
</الجدول>
<محاذاة الجدول=حشوة الخلية المركزية=5 تباعد الخلايا=0 العرض='90%'>
<form name=dataForm4
action="<%=request.getRequestURI()%>?path=<%=UnicodeToChinese(request.getParameter("path"))%>&act=uploadFileDo" أسلوب = "post"
ENCTYPE = "متعدد الأجزاء / بيانات النموذج">
<الجسم>
<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>
<نوع الإدخال = "FILE" NAME = "اسم الملف" الحجم = "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>
</النموذج>
</الجدول>
<%
}
%>
<ر>
<ر>
<ساعة>
<TT>&نسخ;حقوق الطبع والنشر: Jarard·Ast الإصدار: Simplified Chinese 1.00</TT>
<br><TT>للحصول على أية تعليقات أو اقتراحات، يرجى الاتصال بـ: <a href=" mailto:[email protected]"><font color=red>[email protected]</font></a></ تي تي>
</div>
</BODY></HTML>
<لغة البرنامج النصي=جافا سكريبت>
<!--
<%
// الوظيفة التي تعرض معلمات الكشف المختلفة بناءً على معلمات مختلفة
إذا (strStat.equals("تسجيل الدخول")) {%>
نموذج فحص الوظيفة ()
{
)
)*$/;
{
تنبيه ("لا يمكن أن يكون اسم تسجيل الدخول فارغًا!")؛
عودة كاذبة.
}
إذا (Checkblank.test(dataform.userpass.value))
{
تنبيه("لا يمكن أن تكون كلمة المرور فارغة!");
عودة كاذبة.
}
window.dataform.submit()
}
<%}else if(strStat.equals("createFold")) {%>
نموذج التحقق من الوظيفة ()
{
var Checkblank = /^(s*|( )|(.))*$/;
إذا (Checkblank.test(dataForm.foldName.value))
{
تنبيه("لا يمكن أن يكون اسم المجلد الجديد فارغًا!");
dataForm.foldName.focus();
عودة كاذبة.
}
var SPECIAL_STR = " \/:*? "><|";
for(i=0;i<(dataForm.foldName.value).length;i++)
{
إذا (SPECIAL_STR.indexOf((dataForm.foldName.value).charAt(i)) !=-1)
{
تنبيه("لا يمكن أن يحتوي اسم المجلد على الأحرف التالية \/:*? "><|");
dataForm.foldName.focus();
عودة كاذبة.
}
}
window.dataForm.submit();
}
<%}else if(strStat.equals("renameFold")) {%>
وظيفة التحقق من النموذج 2 ()
{
var Checkblank = /^(s*|( )|(.))*$/;
إذا (Checkblank.test(dataForm2.newFoldName.value))
{
تنبيه ("لا يمكن أن يكون اسم المجلد المعاد تسميته فارغًا!")؛
dataForm2.newFoldName.focus();
عودة كاذبة.
}
var SPECIAL_STR = " \/:*? "><|";
for(i=0;i<(dataForm2.newFoldName.value).length;i++)
{
إذا (SPECIAL_STR.indexOf((dataForm2.newFoldName.value).charAt(i)) !=-1)
{
تنبيه("لا يمكن أن يحتوي اسم المجلد على الأحرف التالية \/:*? "><|");
dataForm2.newFoldName.focus();
عودة كاذبة.
}
}
// إذا كان اسم الملف مختلفًا عن اسم الملف الأصلي بعد إعادة التسمية، فضع علامة على المعلمة للإشارة إلى حدوث إجراء إعادة التسمية بالفعل.
if(dataForm2.newFoldName.value!="<%=UnicodeToChinese(request.getParameter("fold"))%>")
{
window.dataForm2.changeDo.value = "true"؛
}
آخر
{
تنبيه ("الرجاء إدخال اسم مجلد جديد!")؛
dataForm2.newFoldName.focus();
عودة كاذبة.
}
window.dataForm2.submit()
}
<%}else if(strStat.equals("renameFile"))
{%>
وظيفة التحقق من النموذج 3 ()
{
var Checkblank = /^(s*|( )|(.))*$/;
إذا (Checkblank.test(dataForm3.newFileName.value))
{
تنبيه("لا يمكن أن يكون اسم المجلد المعاد تسميته فارغًا!");
dataForm3.newFileName.focus();
عودة كاذبة.
}
var SPECIAL_STR = " \/:*? "><|";
for(i=0;i<(dataForm3.newFileName.value).length;i++)
{
إذا (SPECIAL_STR.indexOf((dataForm3.newFileName.value).charAt(i)) !=-1)
{
تنبيه("لا يمكن أن يحتوي اسم الملف على الأحرف التالية \/:*? "><|");
dataForm3.newFileName.focus();
عودة كاذبة.
}
}
// إذا كان اسم الملف مختلفًا عن اسم الملف الأصلي بعد إعادة التسمية، فضع علامة على المعلمة للإشارة إلى حدوث إجراء إعادة التسمية بالفعل.
إذا (dataForm3.newFileName.value!="<%=UnicodeToChinese(request.getParameter("file"))%>")
{
window.dataForm3.changeDo.value = "true"؛
}
آخر
{
تنبيه ("الرجاء إدخال اسم ملف جديد!")؛
dataForm3.newFileName.focus();
عودة كاذبة.
}
window.dataForm3.submit();
}
<%}else if(strStat.equals("uploadFile")){%>
فحص الوظيفةForm4()
{
var Checkblank = /^(s*|( )|(.))*$/;
إذا (Checkblank.test(dataForm4.fileName.value))
{
تنبيه("لا يمكن أن يكون اسم المجلد المعاد تسميته فارغًا!");
dataForm4.fileName.focus();
عودة كاذبة.
}
window.dataForm4.submit()
}
<%}%>
//-->
</النص>