أولاً، قم بإنشاء برنامج على جانب الخادم لإنشاء ملف XML للعودة إلى العميل (getfolder.asp)
<%
'كتبه Linzhang Chen،2003-4-20
يرجى الإشارة إلى المصدر والاحتفاظ بمعلومات حقوق النشر هذه عند إعادة الطباعة
Response.write "<?xml version=""1.0"" encoding=""GB2312""?>"&chr(13)
Response.write "<mediafile>"&chr(13)
المجلدات = طلب ("مجلد")
إذا كانت المجلدات = "/" ثم
المجلدات = ""
نهاية إذا
العد الخافت
العد=0
المجلدات = استبدال (المجلدات،".."، "")
basefolder="../media/"'مسار المجلد الأساسي
newfolder=basefolder&folders
تعيين fso =server.CreateObject("Scripting.FileSystemObject")
تعيين f=fso.getfolder(server.mappath(newfolder))
تعيين sf=f.subfolders
لكل fd في sf' يُرجع قائمة بالمجلدات الموجودة ضمن المسار المحدد
استجابة.كتابة "<ملف>"&chr(13)
Response.write "<ftype>مجلد</ftype>"&chr(13)
Response.write "<fname>"&fd.name&"</fname>"&chr(13)
استجابة.كتابة "</file>"&chr(13)
العد=العد+1
التالي
تعيين sf=لا شيء
تعيين ff=f.Files
لكل فاي في صص
fname=fi.name
إذا instr("asf,wma,wmv",lcase(mid(fname,instrrev(fname,".")+1)))>0 ثم قم بتعيين أنواع الملفات المسموح بإرجاعها لمنع تسرب التعليمات البرمجية المصدر
استجابة.كتابة "<ملف>"&chr(13)
Response.write "<ftype>ملف</ftype>"&chr(13)
Response.write "<fname>"&fname&"</fname>"&chr(13)
استجابة.كتابة "</file>"&chr(13)
العد=العد+1
نهاية إذا
التالي
'إذا لم يكن هناك ملف في الدليل، أرسل عنصرًا فارغًا
إذا كان العد = 0 ثم
استجابة.كتابة "<ملف>"&chr(13)
Response.write "<ftype>فارغ</ftype>"&chr(13)
Response.write "<fname>0</fname>"&chr(13)
استجابة.كتابة "</file>"&chr(13)
نهاية إذا
استجابة.اكتب "</mediafile>"
تعيين وما يليها = لا شيء
تعيين و = لا شيء
تعيين fso=لا شيء
%>
فيما يلي عمل العميل JS (selectfile.asp)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<أتش تي أم أل>
<الرأس>
<TITLE> حدد ملف الفيديو</TITLE>
<نمط>
تد {حجم الخط: 9pt}
حدد {العرض: 210}
.s2 {العرض: 250}
</نمط>
<لغة البرنامج النصي = "جافا سكريبت">
<!--
/ * كتب بواسطة Linzhang Chen، 2003-4-20
يرجى الإشارة إلى المصدر والاحتفاظ بمعلومات حقوق الطبع والنشر هذه عند إعادة الطباعة*/
//تحميل الصور مسبقًا
var imgback = new Image();
imgback.src = "images/arrow.gif";
var imgbackgray = new Image();
imgbackgray.src = "images/grayarrow.gif";
var imgfolder = new Image();
imgfolder.src = "images/folder.gif";
var imggrayfolder = new Image();
imggrayfolder.src = "images/grayfolder.gif";
// مكدس صفيف التاريخ
var arrhistory=new Array();
فارهيسي=0;
// يستخدم لتحديد اسم الملف المراد إرجاعه
فحص الوظيفة ()
{
إذا (document.all.filename.value=="")
{
تنبيه ("الرجاء تحديد الملف أولاً")؛
عودة كاذبة.
}
آخر
{
window.returnValue =document.f1.folder.value+document.all.filename.value;
window.Close();
}
}
// احصل على محتوى ملف XML
وظيفة getuserlist(url)
{ var oXMLDoc = new ActiveXObject('MSXML');
oXMLDoc.url = url;
var ooRoot=oXMLDoc.root;
إرجاع جذر؛
}
// عند تحديد ملف، قم بإرجاع هذه القيمة إلى مربع النص
وظيفة ملف الإضافة (txt)
{
document.all.filename.value=txt;
}
var first=1;// تحديد وظيفة متغيرة عامة
userlist(folders,ti)// قم بإدراج المربعات المحددة
{document.f1.folder.value=folders;
filebox.document.body.innerHTML="جاري تحميل الملف، يرجى الانتظار...";
فار strshow = ""؛
var timeoutid=null;
فار نيوفولدر = ""؛
var arrfolder=new Array();
var arrff=new Array();
فار بلانكستر = ""؛
فار oItem;
// تحديد الحالة التاريخية
hisi+=ti;
arrhistory[hisi]=folders;
إذا (هيسي ==0)
{
Arrow.innerHTML="<img src="images/grayarrow.gif">";
}
آخر
{
Arrow.innerHTML="<img src="images/arrow.gif" border=0 style="cursor:hand" onclick="userlist('"+arrhistory[hisi-1]+"',- 1)" onmouseover="this.src='images/arrow_over.gif'" onmouseout="this.src='images/arrow.gif'">";
}
// تحديد المجلد الحالي
إذا (document.f1.folder.value=="")
{
Folderid.innerHTML="<img src="images/grayfolder.gif">"
}
آخر
{newsfolder=checkfolder(document.f1.folder.value)
Folderid.innerHTML="<img src="images/folder.gif" border=0 style="cursor:hand" onclick="userlist('"+newsfolder+"',1)" onmouseover= "this.src='images/folder_over.gif'" onmouseout="this.src='images/folder.gif'">"
}
// قم بتعيين قيمة للمربع المنسدل
document.all.select.options.length=0;
newfolder=folders;
مجلدستر = ""
var _obj=document.all.select;
var _o=document.createElement("Option");
_o.text="اختر المجلد";
_o.value = "";
_obj.add(_o);
إذا (مجلد جديد! = "")
{arrfolder=newfolder.split("/")
for(var i=0;i<arrfolder.length-1;i++)
{فارغة + = ""؛
Folderstr+=arrfolder[i]+"/";
_o=document.createElement("Option");
_o.text=blankstr+arrfolder[i];
_o.value=folderstr;
_obj.add(_o);
}
}
document.all.select.options[document.all.select.options.length-1].selected=true;
url="getfolder.asp.gl?folder="+folders;
oRoot=getuserlist(url)
strshow="<table class=file cellpacing=0 cellpadding=0>";
len=oRoot.children.length;
إذا (لين==1)
{oItem = oRoot.children.item(0);
إذا (oItem.children.item(0).text=="فارغة")
strshow="لا مزيد من الملفات والمجلدات";
آخر
{
إذا (oItem.children.item(0).text=="folder")
{
strshow+="<tr><td><A href="javascript:parent.userlist('"+folders+oItem.children.item(1).text+"/"+"',1)"><img src="images/mediafolder.gif" border=0 >"+oItem.children.item(1).text+"</A></td></tr>";
}
آخر
{
strshow+="<tr><td><a href="javascript:parent.addfile('"+oItem.children.item(1).text+"')" ><img src="images/mediafile. gif" border=0>"+oItem.children.item(1).text+"</A></td></tr>";
}
}
سترسشو+="</table>"
}
آخر{
// ادفع البيانات إلى المكدس
ل(i=0;i<len;i++)
{ oItem = oRoot.children.item(i);
إذا (oItem.children.item(0).text=="folder")
{
arrff[i]="<A href="javascript:parent.userlist('"+folders+oItem.children.item(1).text+"/"+"',1)"><img src= "images/mediafolder.gif" border=0>"+oItem.children.item(1).text+"</A>";
}
آخر
{
arrff[i]="<A href="javascript:parent.addfile('"+oItem.children.item(1).text+"')"><img src="images/mediafile.gif" border=0 height=12>"+oItem.children.item(1).text+"</A>";
}
}
// احصل على عدد الأعمدة المراد إخراجها
إذا (لين<=6)
{س=1;
ص = 6؛}
آخر
{س=لين/6;
ص = 6؛}
ل(فار ط=0;أنا<y;i++)
{سترشو+="<tr>"
ل(فار ي=0;ي<x;ي++)
{ponits=j*y+i;
إذا (بونيتس> = لين)
{
strshow+="<td> </td>";
}
آخر
{
strshow+="<td>"+arrff[ponits]+"</td>";
}
}
سترسشو+="</tr>"
}
سترسشو+="</table>"
}
filebox.document.body.innerHTML=strshow;
}
//-->
</النص>
<script LANGUAGE="vbscript">
مجلد الاختيار الوظيفي (folderstr)
إذا (folderstr = "" أو instr (folderstr، "/") = instrrev (folderstr، "/")) ثم
مجلد الاختيار = ""
آخر
nfolder=left(folderstr,len(folderstr)-1)
checkfolder=left(nfolder,instrrev(nfolder,"/"))
نهاية إذا
وظيفة النهاية
</script>
</HEAD>
<BODY style="margin:0" bgColor=menu onload="javascript:userlist('',0)">
<عرض الجدول = "443" الحدود = "0" تباعد الخلايا = "0">
<تر>
<td height="36"><عرض الجدول = "409" حد = "0">
<تر>
<td width="73" align="right">نطاق البحث (<u>I</u>):</td>
<td width="214"><select name="select" id="select" size="1" onchange="javascript:userlist(this.value,1);">
</select></td>
<td width="22" valign="baseline" id="arrow" align=right></td>
<td width="20" valign="middle" id="folderid"></td>
<td width="20" align="left"><img src="images/md.gif" width="16" height="15"></td>
<td width="28" align="left"><img src="images/viewtype.gif" width="23" height="14"></td>
</tr>
</الجدول></تد>
</tr>
<تر>
<td height="120"><عرض الجدول = "100%" ارتفاع = "100%" حدود = "0">
<تر>
<td width="9"> </td>
<TD>
<iframe src="blank.htm" width=415 height=120 id="filebox"></iframe></td>
<td width="13"> </td>
</tr>
</الجدول></تد>
</tr>
<تر>
<td height="60"><عرض الجدول = "100%" حدود = "0">
<طريقة النموذج = الإجراء اللاحق = "" name = "f1">
<نوع الإدخال = "مخفي" اسم = "قيمة المجلد" = "">
<تر>
<td width="85" align="right">اسم الملف (<u>N</u>): </td>
<td width="254"><نوع الإدخال = "text" id = "اسم الملف" الحجم = "34"></td>
<td><button onclick="javascript:return check()"> فتح (<u>O</U>)</button></td>
</tr>
</فورم>
<تر>
<td align="right">نوع الملف (<u>T</u>):</td>
<td><select name="select2" class=s2>
<option>تدفق ملفات الوسائط (*.asf، *.wmv، *.wma)</option>
</select></td>
<td><input type = "button" name = "Submit" value = " إلغاء " onclick = "window. Close ()؛" ></td>
</tr>
</الجدول></تد>
</tr>
</الجدول>
</الجسم>
</HTML>
يوجد أيضًا ملف فارغ htm صغير يستخدم لتحديد نمط عرض الملفات والمجلدات.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<أتش تي أم أل>
<الرأس>
<TITLE> مستند جديد </TITLE>
<نمط>
تد {حجم الخط: 9pt}
الجسم {حجم الخط: 9pt}
.الملف أ{اللون: #000000؛ زخرفة النص: لا شيء؛ حجم الخط: 9pt}
.الملف أ: تمت الزيارة {COLOR: #000000؛ TEXT-DECORATION: none;font-size:9pt}
.الملف أ: تحوم {COLOR: #000000؛ TEXT-DECORATION: none;font-size:9pt}
</نمط>
</HEAD>
<BODY style="margin: 0pt">
</BODY>
</HTML>
عند الاتصال، استخدم الوظيفة التالية لتحقيق تأثير تحديد الملفات على جانب الخادم التي تبدو تمامًا مثل الملف الحقيقي.
وظيفة تحديد الملف ()
{
var arr = showModalDialog("selectfile.asp?temp="+Math.random(), ""، "dialogWidth:453px; حوار الارتفاع:252px; الحالة:0;مساعدة:1");
إذا (arr ! = فارغ)
{
العودة آر
}
}
آخر شيء يتم إرجاعه بواسطة هذه الوظيفة هو اسم الملف المحدد. يمكنك الحصول على العديد من الصور المستخدمة في الوظيفة من مربع تحديد الملف :).
من المقدر أنك قد تواجه العديد من الأخطاء غير المعروفة أثناء الاستخدام. أرحب بالجميع للتواصل معي: البريد الإلكتروني: [email protected]