Gunakan XML+FSO+JS untuk mengimplementasikan kode untuk efek pemilihan file sisi server. Teman yang membutuhkannya dapat merujuknya.
<%
'ditulis oleh Linzhang Chen, 20-4-2003
' Harap sebutkan sumbernya dan simpan informasi hak cipta ini saat mencetak ulang
respon.tulis <?xml versi=1.0 pengkodean=GB2312?>&chr(13)
respon.tulis <mediafile>&chr(13)
folder=permintaan(folder)
jika folder=/lalu
folder=
berakhir jika
hitungan redup
hitungan=0
folder=ganti(folder,..,)
folder dasar=../media/'jalur folder dasar
folder baru=folder dasar&folder
Setel fso =server.CreateObject(Scripting.FileSystemObject)
setel f=fso.getfolder(server.mappath(folder baru))
atur sf=f.subfolder
untuk setiap fd di sf' mengembalikan daftar folder di bawah jalur yang ditentukan
respon.tulis <file>&chr(13)
respon.tulis <ftype>folder</ftype>&chr(13)
respon.tulis <fname>&fd.name&</fname>&chr(13)
respon.tulis </file>&chr(13)
hitungan=hitungan+1
Berikutnya
atur sf=tidak ada
atur ff=f.File
untuk setiap fi di ff
fname=fi.nama
if instr(asf,wma,wmv,lcase(mid(fname,instrrev(fname,.)+1)))>0 maka'Atur jenis file yang boleh dikembalikan untuk mencegah kebocoran kode sumber
respon.tulis <file>&chr(13)
respon.tulis <ftype>file</ftype>&chr(13)
respon.tulis <fname>&fname&</fname>&chr(13)
respon.tulis </file>&chr(13)
hitungan=hitungan+1
berakhir jika
Berikutnya
'Jika tidak ada file di direktori, kirimkan elemen kosong
jika hitungan = 0 maka
respon.tulis <file>&chr(13)
respon.tulis <ftype>kosong</ftype>&chr(13)
respon.tulis <fname>0</fname>&chr(13)
respon.tulis </file>&chr(13)
berakhir jika
respon.tulis </mediafile>
atur ff=tidak ada
atur f=tidak ada
atur fso=tidak ada
%>
Berikut hasil kerja client JS (selectfile.asp)
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transisi//EN>
<HTML>
<KEPALA>
<TITLE> Pilih file video</TITLE>
<gaya>
td{ukuran font:9pt}
pilih{lebar:210}
.s2{lebar:250}
</gaya>
<BAHASA SKRIP=JavaScript>
<!--
/*ditulis oleh Linzhang Chen ,20-4-2003
Harap sebutkan sumbernya dan simpan informasi hak cipta ini saat mencetak ulang*/
//Pramuat gambar
var imgback = Gambar baru();
imgback.src = gambar/panah.gif;
var imgbackgray = Gambar baru();
imgbackgray.src = gambar/grayarrow.gif;
var imgfolder = Gambar baru();
imgfolder.src = gambar/folder.gif;
var imggrayfolder = Gambar baru();
imggrayfolder.src = gambar/grayfolder.gif;
//tumpukan susunan riwayat
var arrhistory=Array baru();
varhisi=0;
//Digunakan untuk menentukan nama file yang akan dikembalikan
pemeriksaan fungsi()
{
if (dokumen.semua.namafile.nilai==)
{
alert(silakan pilih filenya terlebih dahulu);
kembali salah;
}
kalau tidak
{
window.returnValue = dokumen.f1.folder.value+document.all.nama file.value;
jendela.tutup();
}
}
//Dapatkan konten file XML
fungsi getuserlist(url)
{ var oXMLDoc = ActiveXObject baru('MSXML');
oXMLDoc.url = url;
var ooRoot=oXMLDoc.root;
kembalikan ooRoot;
}
//Ketika sebuah file dipilih, kembalikan nilai ini ke kotak teks
fungsi file tambahan(txt)
{
document.all.namafile.value=txt;
}
var first=1;//Tentukan variabel global
fungsi daftar pengguna(folder,ti)//Daftar kotak yang dipilih
{document.f1.folder.value=folder;
filebox.document.body.innerHTML=Memuat file, harap tunggu...;
var strshow=;
var timeoutid=null;
var folder baru=;
var arrfolder=Array baru();
var arrff=Array baru();
var blankstr=;
var oItem;
//Tentukan status sejarah
hisi+=ti;
arrhistory[hisi]=folder;
jika (hisi==0)
{
panah.innerHTML=<img src=/images/grayarrow.gif/>;
}
kalau tidak
{
panah.innerHTML=<img src=/images/arrow.gif/ border=0 style=/cursor:hand/ onclick=/userlist('+arrhistory[hisi-1]+',-1)/ onmouseover=/ini. src='images/arrow_over.gif'/ onmouseout=/this.src='images/arrow.gif'/>;
}
//Tentukan folder saat ini
if (dokumen.f1.folder.nilai==)
{
folderid.innerHTML=<img src=/images/grayfolder.gif/>
}
kalau tidak
{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'/>
}
//Menetapkan nilai ke kotak drop-down
document.all.select.options.length=0;
folder baru=folder;
folderstr=
var _obj=dokumen.semua.pilih;
var _o=document.createElement(Opsi);
_o.text=Pilih folder;
_o.nilai=;
_obj.tambahkan(_o);
jika (folder baru!=)
{arrfolder=folder baru.split(/)
untuk(var i=0;i<arrfolder.length-1;i++)
{kosongstr+= ;
folderstr+=arrfolder[i]+/;
_o=document.createElement(Opsi);
_o.text=blankstr+arrfolder[i];
_o.value=foldertr;
_obj.tambahkan(_o);
}
}
document.all.select.options[document.all.select.options.length-1].selected=true;
url=getfolder.asp.gl?folder=+folder;
oRoot=dapatkan daftar pengguna(url)
strshow=<kelas tabel=penspasian file=0 cellpadding=0>;
len=oRoot.anak-anak.panjang;
jika (len==1)
{oItem = oRoot.anak-anak.item(0);
if(oItem.anak-anak.item(0).teks==kosong)
strshow=Tidak ada file atau folder;
kalau tidak
{
if(oItem.anak-anak.item(0).teks==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>;
}
kalau tidak
{
strshow+=<tr><td><a href=/javascript:parent.addfile('+oItem.children.item(1).text+')/ ><img src=/images/mediafile.gif/ border=0> +oItem.anak-anak.item(1).teks+</A></td></tr>;
}
}
strshow+=</tabel>
}
kalau tidak{
//Dorong data ke tumpukan
untuk(i=0;i<len;i++)
{ oItem = oRoot.children.item(i);
if(oItem.anak-anak.item(0).teks==folder)
{
arrff[i]=<A href=/javascript:parent.userlist('+folders+oItem.children.item(1).text+/+',1)/><img src=/images/mediafolder.gif/ border =0>+oItem.anak-anak.item(1).teks+</A>;
}
kalau tidak
{
arrff[i]=<A href=/javascript:parent.addfile('+oItem.children.item(1).text+')/><img src=/images/mediafile.gif/ border=0 tinggi=12> +oItem.anak-anak.item(1).teks+</A>;
}
}
//Dapatkan jumlah kolom yang akan dihasilkan
jika (len<=6)
{x=1;
kamu=6;}
kalau tidak
{x=len/6;
kamu=6;}
untuk(var i=0;i<y;i++)
{strshow+=<tr>
untuk(var j=0;j<x;j++)
{ponit=j*y+i;
jika (ponit>=len)
{
strshow+=<td> </td>;
}
kalau tidak
{
strshow+=<td>+arrff[ponit]+</td>;
}
}
strshow+=</tr>
}
strshow+=</tabel>
}
filebox.document.body.innerHTML=strshow;
}
//-->
</SKRIP>
<skrip BAHASA=skrip vb>
fungsi folder periksa(folderstr)
jika (folderstr= atau instr(folderstr,/)=instrrev(folderstr,/)) maka
folder periksa=
kalau tidak
nfolder=kiri(folderstr,len(folderstr)-1)
checkfolder=kiri(nfolder,instrrev(nfolder,/))
berakhir jika
fungsi akhir
</skrip>
</KEPALA>
<BODY style=margin:0 bgColor=menu onload=javascript:userlist('',0)>
<lebar tabel=443 batas=0 spasi sel=0>
<tr>
<td tinggi=36><lebar tabel=409 batas=0>
<tr>
<td width=73 align=right>Rentang pencarian (<u>I</u>):</td>
<td lebar=214><pilih nama=pilih id=pilih ukuran=1 onchange=javascript:userlist(this.value,1);>
</pilih></td>
<td lebar=22 valign=id dasar=panah align=kanan></td>
<td lebar=20 valign=id tengah=folderid></td>
<td lebar=20 align=kiri><img src=images/md.gif lebar=16 tinggi=15></td>
<td lebar=28 align=kiri><img src=images/viewtype.gif lebar=23 tinggi=14></td>
</tr>
</tabel></td>
</tr>
<tr>
<td tinggi=120><lebar tabel=100% tinggi=100% batas=0>
<tr>
<td lebar=9> </td>
<td>
<iframe src=blank.htm lebar=415 tinggi=120 id=kotak file></iframe></td>
<td lebar=13> </td>
</tr>
</tabel></td>
</tr>
<tr>
<td tinggi=60><lebar tabel=100% batas=0>
<METODE BENTUK=PASCA TINDAKAN= nama=f1>
<tipe masukan=nama tersembunyi=nilai folder=>
<tr>
<td width=85 align=right>Nama file (<u>N</u>): </td>
<td lebar=254><tipe masukan=teks id=ukuran nama file=34></td>
<td><button onclick=javascript:return check()> Buka (<u>O</U>)</button></td>
</tr>
</BENTUK>
<tr>
<td align=right>Jenis file (<u>T</u>):</td>
<td><pilih nama=pilih2 kelas=s2>
<option>Streaming file media (*.asf, *.wmv, *.wma)</option>
</pilih></td>
<td><input type=button name=Kirim nilai= Batalkan onclick=window.close();></td>
</tr>
</tabel></td>
</tr>
</tabel>
</BODI>
</HTML>
Ada juga file kecil blank.htm yang digunakan untuk menentukan gaya tampilan file dan folder.
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Transisi//EN>
<HTML>
<KEPALA>
<TITLE> Dokumen Baru </TITLE>
<gaya>
td{ukuran font:9pt}
badan{ukuran font:9pt}
.file A{WARNA: #000000; DEKORASI TEKS: tidak ada; ukuran font:9pt}
.file A:visited{WARNA: #000000; DEKORASI TEKS: tidak ada;ukuran font:9pt}
.file A:hover {WARNA: #000000; DEKORASI TEKS: tidak ada; ukuran font:9pt}
</gaya>
</KEPALA>
<Gaya BODY=margin: 0pt>
</BODI>
</HTML>
Saat memanggil, gunakan fungsi berikut untuk mencapai efek pemilihan file di sisi server yang terlihat seperti aslinya.
file pilih fungsi()
{
var arr = showModalDialog(selectfile.asp?temp=+Math.random(), , dialogWidth:453px; dialogHeight:252px; status:0;help:1);
jika (arr != nol)
{
kembali arr
}
}
Hal terakhir yang dikembalikan oleh fungsi ini adalah nama file yang dipilih. Anda dapat mengambil beberapa gambar yang digunakan dalam fungsi tersebut dari kotak pemilihan file :)