Direkomendasikan: Cara mendapatkan ASP untuk mendapatkan alamat gambar pertama dalam kode Berikut ini adalah konten yang direferensikan: 'Ubah pola lagi' kode yang akan dideteksi 'http://www.knowsky.com/asp.asp'leixing html atau kode ubb'nopic tidak memiliki
| Berikut ini adalah konten yang dikutip: Contoh.asp <%@Language = vbscript codepage = 65001%> <!-#Sertakan File = SockyUpload.asp-> <% 'Pengkodean dokumen dalam contoh ini adalah UTF-8. Jika itu adalah sistem dengan pengkodean lain, harap konversi pengkodean ke pengkodean yang sesuai, jika tidak data yang diperoleh dalam formulir dapat dibumbui. Redup oblequload, opt Redup xmlpath Redup fileformname, objfile, counter opt = request.querystring (opt) Jika opt = unggah maka xmlpath = server.mappath (request.querystring (xmlpath)) 'Konversi jalur virtual ke jalur aktual Setel oblePload = sundyupload baru 'Buat Objek Unggah OBQULOAD.UPLOADINIT XMLPATH, UTF-8 penghitung = 1 Response.write (bentuk normal: & oblequload.form (normform) & <br> <br>) 'dapatkan data formulir Untuk setiap fileFormName di obleJupload.objfile Set ObjFile = Objupload.objFile (FileFormName) FileSize = objFile.filesize strtemp = objfile.filepath Response.write strtemp FileName = mid (strtemp, instrrev (strtemp, /) 1) Jika FileSize> 0 Lalu Response.write (ukuran file: & fileze & <br>) Response.write (nama file: & objfile.filepath & <br>) 'Response.write (Deskripsi File: & Obpupload.Form (FileDesc & Counter) & <br> <br>) ObjFile.Saveas Server.Mappath (.) & / Unggah / & FileName Response.write save at: & server.mappath (.) & / Unggah / & filename & <br> <br> Akhiri jika penghitung = penghitung 1 Berikutnya Akhiri jika 'Tentukan jalur virtual untuk mengunggah file data bilah progres (file xml) 'Lebih baik menjadi acak, karena banyak orang dapat mengunggah pada saat yang sama, membutuhkan data kemajuan yang berbeda 'Jalur ini perlu diteruskan ke komponen unggahan selama pengiriman untuk mengubah data kemajuan selama proses unggahan 'Klien menggunakan JavaScript untuk membaca file XML ini dan menampilkan kemajuan xmlpath = unggah/ & timer & .xml %> <Html> <head> <meta http-equiv = konten-tipe konten = teks/html; Charset = UTF-8 /> <Title> sundy unggah progress bilah contoh </iteme> <bahasa skrip = javascript> fungsi chkfrm () { var objfrm = document.frmupload; if (objfrm.file1.value == && objfrM.file2.value ==) { Peringatan (pilih file); objfrM.file1.focus (); mengembalikan false; } ObjFRM.Action = example.asp? opt = unggah & xmlpath = <%= xmlpath%>; StartProgress ('<%= xmlpath%>'); // Mulai bilah kemajuan Kembali Benar; } </script> </head> <body> <Form Name = FRMUpload Metode = Posting Tindakan = Contoh.asp enctype = multipart/form-data onsubmit = return chkfrm ()> Bentuk normal: <br> <input type = nama teks = ukuran bentuk normal = 40> <br> <br> File 1: <br> <input type = file nama = file1 size = 40> </br> <Input Type = Teks Nama = FileDesc1 Ukuran = 30> <br> <br> File 2: <br> <input type = file nama = file2 ukuran = 40> </br> <Input Tipe = Nama Teks = FileDesc2 Ukuran = 30> <br> File 3: <br> <input type = file nama = file3 ukuran = 40> </br> File 4: <br> <input type = file nama = file4 ukuran = 40> </br> File 5: <br> <input type = file nama = file5 ukuran = 40> </br> <Input Tipe = Kirim Nama = BtnSubmit Value = Kirim/> </form> </body> </html> Sundyupload.asp <meta http-equiv = konten-tipe konten = teks/html; Charset = UTF-8 /> <% DIM SUNDYUPLOAD_SOURCECEDATA Kelas sundyupload Redup objform, objfile, versi, objProgress Redup xmlpath, charsetencoding Formulir Fungsi Publik (STRForm) strform = lcase (strform) Jika tidak objform.exists (strform) maka Formulir = Kalau tidak Form = objform (strform) Akhiri jika Fungsi akhir File Fungsi Publik (Strfile) strfile = lcase (strfile) Jika tidak objfile.exists (strfile) maka Setel file = FileInfo baru Kalau tidak Setel file = objfile (strfile) Akhiri jika Fungsi akhir Public Sub Unggahinit (ProgressxmlPath, Charset) Redup permintaandata, sstart, crlf, sinfo, iinfostart, iinfoend, tstream, iStart, thefile Dimed IFILESSIZE, SFILEPATH, SFILETYPE, SFORMVALUE, SFILENAME Redup ifindstart, ifindend Dim IformStart, Iformend, SFormName Versi = Unggah Lebar Progress Bar Versi 1.0 Set ObjForm = Server.CreateObject (Scripting.Dictionary) Set ObjFile = Server.CreateObject (Scripting.Dictionary) Jika request.totalbytes <1 maka keluar sub sub Setel tStream = server.CreateObject (adodb.stream) Setel sundyupload_sourcedata = server.createObject (adodb.stream) Sundyupload_sourcedata.type = 1 Sundyupload_sourcedata.mode = 3 Sundyupload_sourcedata.open Redup total Redup chunkreadsize Redup datapart, bagian Redup objprogress TotalBytes = request.totalbytes 'ukuran total Chunkreadsize = 64 * 1024 'ukuran blok 64k Bytesread = 0 xmlpath = progressXmlPath Charsetencoding = Charset Jika charsetencoding = lalu Charsetencoding = UTF-8 Akhiri jika Atur objprogress = kemajuan baru objprogress.progressInit (xmlpath) objprogress.updateProgress TotalBytes, 0 'Loop Chunked Reading Lakukan saat bytesead <totalbytes 'Diblokir Baca Partsize = chunkreadsize Jika Partsize Bytesread> TotalBytes maka Partsize = TotalBytes - Bytesread Datapart = request.binaryRead (Partsize) Bytesread = bytesread partsize Sundyupload_sourcedata.write datapart objprogress.updateProgress TotalBytes, Bytesread Lingkaran 'Sundyupload_sourcedata.write request.binaryread (request.totalbytes) Sundyupload_sourcedata.position = 0 RequestData = sundyupload_sourcedata.read IformStart = 1 iformend = lenb (requestData) CRLF = CHRB (13) & CHRB (10) sstart = midb (requestData, 1, instrb (IformStart, RequestData, CRLF) -1) Istart = lenb (sstart) IFORMSTART = IFORMSTART ISTART 1 Sementara (IformStart 10) <Iformend iinfoend = instrb (IformStart, RequestData, CRLF & CRLF) 3 tstream.type = 1 tstream.mode = 3 tstream.open Sundyupload_sourcedata.position = iformStart Sundyupload_sourcedata.copyto tstream, iinfoend-serorStart tstream.position = 0 tstream.type = 2 tstream.charset = charsetencoding sinfo = tstream.readtext tstream.close 'Dapatkan Formulir Nama Proyek iformStart = instrb (iinfoend, requestData, sstart) ifindstart = instr (22, sinfo, name =, 1) 6 ifindend = instr (ifindstart, sinfo ,, 1) SFormName = lcase (mid (Sinfo, IfindStart, IfIndend-IfindStart))) 'Jika itu file If instr (45, sinfo, filename =, 1)> 0 lalu Atur TheFile = FileInfo baru 'Dapatkan nama file ifindStart = instr (ifindend, sinfo, filename =, 1) 10 ifindend = instr (ifindstart, sinfo ,, 1) sfilename = mid (sinfo, ifindstart, ifindend-ifindstart) TheFile.FileName = getFileName (SFileName) thefile.filePath = getFilePath (sfilename) 'Dapatkan jenis file ifindstart = instr (ifindend, sinfo, tipe konten :, 1) 14 ifindend = instr (ifindstart, sinfo, vbcr) thefile.filetype = mid (sinfo, ifindstart, ifindend-ifindstart) thefile.filestart = iinfoend thefile.filesize = iformStart -iinfoend -3 thefile.FormName = SFormName Jika tidak objfile.exists (SFormName) maka Objfile.add SFormName, Thefile Akhiri jika Kalau tidak 'Jika itu proyek formulir tstream.type = 1 tstream.mode = 3 tstream.open Sundyupload_sourcedata.position = iinfoend Sundyupload_sourcedata.copyto tstream, iformStart-iinfoend-3 tstream.position = 0 tstream.type = 2 tstream.charset = charsetencoding sformValue = tStream.readtext tstream.close Jika objform.exists (SFormName) lalu objform (sFormName) = objform (sFormName) &, & sFormValue Kalau tidak objform.add SFormName, SFormValue Akhiri jika Akhiri jika IFORMSTART = IFORMSTART ISTART 1 Pergi ke RequestData = Atur tstream = tidak ada Akhir sub Private Sub Class_initialize Akhir sub Sub Class_Terminate pribadi Jika request.totalbytes> 0 lalu objform.removeall objfile.removeall Setel objform = tidak ada Atur objfile = tidak ada Sundyupload_sourcedata.close Setel sundyupload_sourcedata = tidak ada Akhiri jika Atur objprogress = tidak ada Set ObjFSO = Server.CreateObject (Scripting.FilesystemObject) Jika objfso.fileexists (xmlpath) maka objfso.deleteFile (xmlpath) Akhiri jika Atur objfso = tidak ada Akhir sub Fungsi Pribadi GetFilePath (Fullpath) Jika fullpath <> lalu GetFilePath = kiri (fullpath, instrrev (fullpath,)) Kalau tidak GetFilePath = Akhiri jika Fungsi akhir Fungsi Pribadi GetFileName (Fullpath) Jika fullpath <> lalu GetFileName = mid (fullpath, instrrev (fullpath, /) 1) Kalau tidak GetFileName = Akhiri jika Fungsi akhir Kelas akhir Class fileInfo Redup formname, nama file, filepath, filze, filetype, filestart Private Sub Class_initialize Nama file = Filepath = FileSize = 0 Filestart = 0 FormName = Filetype = Akhir sub Fungsi Publik Saveas (Fullpath) Redup dr, errorchar, i Saveas = true 'Response.write FullPath & ............... <br> 'FileName = ss.txt Jika trim (fullpath) = atau filestArt = 0 atau fileName = atau kanan (fullpath, 1) =/ Kemudian fungsi keluar 'Response.write 2 ............ <br> Set DR = CreateObject (adodb.stream) Dr.Mode = 3 Dr.Type = 1 Dr. Sundyupload_sourcedata.position = filestart Sundyupload_sourcedata.copyto dr, file Dr.Savetofile Fullpath, 2 Dr.Close Atur dr = tidak ada Saveas = false Fungsi akhir Kelas akhir Kemajuan kelas Redup objdom, xmlpath Mulai waktu redup Private Sub Class_initialize Akhir sub Public Sub ProgressInit (xmlpathtmp) Redup objroot, objchild Redup objpi xmlpath = xmlpathtmp Set ObjDom = Server.CreateObject (microsoft.xmldom) Set Objroot = ObjDom.Createelement (Progress) Objdom.AppendChild objroot Set ObjChild = ObjDom.Createelement (TotalBytes) objchild.text = 0 Objroot.AppendChild ObjChild Set ObjChild = ObjDom.Createelement (UploadBytes) objchild.text = 0 Objroot.AppendChild ObjChild Set ObjChild = ObjDom.Createelement (UploadPent) objchild.text = 0% Objroot.AppendChild ObjChild Set ObjChild = ObjDom.Createelement (Uploadspeed) objchild.text = 0 Objroot.AppendChild ObjChild Set ObjChild = ObjDom.Createelement (TotalTime) objchild.text = 00:00:00 Objroot.AppendChild ObjChild Set ObjChild = ObjDom.CreateElement (Lefttime) objchild.text = 00:00:00 Objroot.AppendChild ObjChild Set Objpi = ObjDom.CreateProcessingInstruction (xml, Version = '1.0' encoding = 'UTF-8') objdom.insertbeFore objpi, objdom.childnodes (0) objdom.save xmlpath Atur objpi = tidak ada Atur objchild = tidak ada Atur objroot = tidak ada Atur objom = tidak ada Akhir sub Sub UpdateProgress (Tbytes, Rbytes) Redup, saat ini, kecepatan, total waktu, waktu kiri, persen Jika rbytes = 0 lalu startTime = timer Set ObjDom = Server.CreateObject (microsoft.xmldom) objdom.load (xmlpath) objdom.selectsinglenode (// totalBytes) .text = tbytes objdom.save (xmlpath) Kalau tidak Kecepatan = 0,0001 CurrentTime = Timer ETIME = CurrentTime - StartTime Jika ETIME> 0 maka speed = rbytes / etime TotalTime = Tbytes/Speed lefttime = (tbytes - rbytes) / kecepatan persen = bundar (rbytes *100 / tbytes) 'Objdom.SelectsingLenode (// unggahytes) .text = rbytes 'objdom.selectsinglenode (// unggah) .text = kecepatan 'objdom.selectsinglenode (// totalTime) .text = TotalTime 'objdom.selectsinglenode (// lefttime) .text = waktu kiri objdom.selectsinglenode (// unggah) .text = formatFileSize (rbytes) &/& formatFileSize (tbytes) objdom.selectsinglenode (// unggah) .text = persen objdom.selectsinglenode (// unggah) .text = formatFileSize (kecepatan) &/detik objdom.selectsinglenode (// totalTime) .text = sectoTime (TotalTime) objdom.selectsinglenode (// lefttime) .text = sectoTime (waktu kiri) objdom.save (xmlpath) Akhiri jika Akhir sub SectoTime Fungsi Pribadi (Sec) Redup h: h = 0 Redup m: m = 0 Redup s: s = 0 h = bundar (dtk/3600) m = bundar ((sec mod 3600) / 60) s = bundar (sec mod 60) Jika len (h) = 1 maka h = 0 & h Jika len (m) = 1 maka m = 0 & m Jika len = 1 maka s = 0 & s SektoTime = (h &: & m &: & s) Fungsi akhir Format Fungsi Pribadi (FSIZE) Radio redup, k, m, g, unittmp k = 1024 M = 1024*1024 G = 1024*1024*1024 Radio = 1 Jika fix (fsize / g)> 0,0 lalu unittmp = gb radio = g Fix elseif (fsize / m)> 0 lalu unittmp = mb radio = m Fix elseif (fsize /k)> 0 lalu unittmp = kb radio = k Kalau tidak unittmp = b Radio = 1 Akhiri jika Jika radio = 1 maka FormatFileSize = fsize & & nbsp; & unittmp Kalau tidak FormatFileSize = formatNumber (fsize/radio, 3) & unittmp Akhiri jika Fungsi akhir Sub Class_Terminate pribadi Atur objom = tidak ada Akhir sub Kelas akhir 'http://www.cuoxin.com/ %> <bahasa skrip = javascript> // Mulai bilah kemajuan fungsi startprogress (xmlpath) { DisplayProgress (); setProgressDivPos (); setTimeout (displayProgressBar ('xmlpath'), 500); } fungsi displayProgressBar (xmlpath) { var xmldoc = ActivexObject baru (msxml2.domdocument.3.0); xmldoc.async = false; xmldoc.load (xmlpath); if (xmldoc.parseError.ErrorCode! = 0) { var error = xmldoc.parseError; waspada (error.reason) setTimeout (displayProgressBar ('xmlpath'), 1000); kembali; } var root = xmldoc.documentElement; // Node root var totalBytes = root.childnodes (0) .text; var unggahytes = root.childnodes (1) .text; var persen = root.childnodes (2) .text; ProgressPercent.InnerHTML = Persen %; Progressbar.style.width = persen %; unggah. unggah speed.innerHtml = root.childnodes (3) .text; TotalTime.innerHtml = root.childnodes (4) .text; lefttime.innerHtml = root.childnodes (5) .text; if (persen <100) { setTimeout (displayProgressBar ('xmlpath'), 1000); } } function displayProgress () { var objprogress = document.getElementById (progress); objprogress.style.display =; } fungsi closeprogress () { var objprogress = document.getElementById (progress); objprogress.style.display = tidak ada; } fungsi setProgressDivPos () { var objprogress = document.getElementById (progress); objprogress.style.top = document.body.scrolltop (document.body.clientheight-document.getElementById (progress) .offsetheight)/2 objprogress.style.left = document.body.scrollleft (document.body.clientwidth-document.getElementById (progress) .offsetWidth)/2; } </script> <Tipe Gaya = Teks/CSS> .kemajuan { Posisi: Absolute; padding: 4px; Atas: 50; Kiri: 400; Font-Family: Verdana, Helvetica, Arial, Sans-Serif; font-size: 12px; Lebar: 250px; Tinggi: 100px; Latar belakang: #fffbd1; Warna: #3D2C05; Perbatasan: 1px Solid #715208; / * Kepemilikan Mozilla */ -Moz-border-radius: 5px; /*-moz-opacity: 0,95; */ } Tabel .progress, .progress td { Ukuran font: 9pt; } .Batang{ Lebar: 100%; Tinggi: 15px; Latar Belakang-Color: #CCCCCC; Perbatasan: 1px Inset #666666; margin-bottom: 4px; } .Progresspercent { Ukuran font: 9pt; Warna: #000000; Tinggi: 15px; Posisi: Absolute; z-index: 20; Lebar: 100%; Teks-Align: tengah; } .Progressbar { latar belakang-warna:#91d65c; Lebar: 1px; Tinggi: 15px; } </tyle> <Div ID = Gaya Kemajuan = Tampilan: Tidak Ada; class = progress> <Div class = bar> <Div ID = ProgressPercent class = ProgressPercent> 0%</div> <Div id = progressBar class = progressBar> </div> </div> <Border Tabel = 0 CellPacing = 0 CellPadding = 2> <tr> <td> Diberikan </td> <td>: </td> <td id = unggah> </td> </tr> <tr> <td> unggah kecepatan </td> <td>: </td> <td id = unggah speed> & nbsp; </td> </tr> <tr> <td> Total waktu </td> <td>: </td> <td id = totalTime> & nbsp; </td> </tr> <tr> <td> Sisa waktu </td> <td>: </td> <TD ID = Lefttime> & nbsp; </td> </tr> </boable> </div> |
Bagikan: Analisis Singkat Asp-Server.urlencode Fungsi Terbalik: Urldecode Jika ada spasi, gunakan sebagai gantinya. Jika ada karakter lain, gunakan %ASCII sebagai gantinya. Jika ada empat karakter byte seperti karakter Cina, gunakan ASCII dua %sebagai gantinya. Namun, kadang -kadang kita juga perlu memecahkan kode string yang telah dikodekan, tetapi ASP tidak memberikan yang relevan