موصى به: كيفية الحصول على ASP للحصول على عنوان الصورة الأول في الكود ما يلي هو المحتوى المشار إليه: "تعديل النمط مرة أخرى" الكود المراد اكتشافه "http://www.knowsky.com/asp.asp'leixing html أو ubb'nopic لا يحتوي
| ما يلي هو المحتوى المقتبس: مثال <٪@language = vbscript codepage = 65001 ٪> <!-#تضمين ملف = sundyupload.asp-> <٪ "وثيقة ترميز في هذا المثال هي UTF-8. إذا كان نظامًا مع تشفير آخر ، فيرجى تحويل الترميز إلى الترميز المقابل ، وإلا فقد يتم تشويه البيانات التي تم الحصول عليها في النموذج. قاتمة objupload ، OPT DIM XMLPATH dim fileformname ، objfile ، counter OPT = request.querystring (OPT) إذا كان opt = تحميل ثم xmlpath = server.mappath (request.querystring (xmlpath)) 'تحويل المسار الظاهري إلى المسار الفعلي تعيين objupload = جديد sundyupload 'إنشاء كائن تحميل objupload.uploadinit xmlpath ، utf-8 العداد = 1 Response.write (النموذج العادي: & objupload.form (NormalForm) & <br> <br>) "الحصول على بيانات النموذج لكل fileformname في objupload.objfile تعيين objfile = objupload.objfile (FileFormName) filesize = objfile.filesize strtemp = objfile.filepath الرد. write strtemp اسم الملف = Mid (Strtemp ، Instrev (Strtemp ، /) 1) إذا كانت الملفات> 0 ثم Response.write (حجم الملف: & filesize & <br>) Response.write (اسم الملف: & objfile.filepath & <br>) 'response.write (وصف الملف: & objupload.form (FileDesc & Counter) & <br> <br>) objfile.saveas server.mappath (.) & / upload / & filename Response.write حفظ في: & server.mappath (.) إنهاء إذا العداد = العداد 1 التالي إنهاء إذا حدد مسارًا افتراضيًا لتحميل ملف بيانات شريط التقدم (ملف XML) من الأفضل أن تكون عشوائيًا ، لأن العديد من الأشخاص قد يتم تحميلهم في نفس الوقت ، مما يتطلب بيانات تقدم مختلفة يجب تمرير هذا المسار إلى مكون التحميل أثناء التقديم لتغيير بيانات التقدم أثناء عملية التحميل يستخدم العميل JavaScript لقراءة ملف XML هذا ويعرض التقدم xmlpath = upload/ & timer & .xml ٪> <html> <head> <meta http-equiv = content-type content = text/html ؛ charset = utf-8 /> <title> Sundy Upload Progress Bar مثال </title> <لغة البرنامج النصي = javaScript> وظيفة chkfrm () { var objfrm = document.frmupload ؛ if (objfrm.file1.value == && objfrm.file2.value ==) { تنبيه (الرجاء تحديد ملف) ؛ objfrm.file1.focus () ؛ العودة كاذبة } OBJFRM.ACTING = example.asp؟ opt = upload & xmlpath = <٪ = xmlpath ٪> ؛ StartProgress ('<٪ = xmlpath ٪>') ؛ // ابدأ شريط التقدم العودة صحيح. } </script> </head> <body> <name form = frmupload method = post action = example.asp enctype = multipart/form-data onsubmit = return chkfrm ()> النموذج العادي: <br> <type type = text name = normalform size = 40> <br> <br> ملف 1: <br> <إدخال نوع = file name = file1 size = 40> </br> <type type = text name = filedesc1 size = 30> <br> <br> ملف 2: <br> <إدخال نوع = file name = file2 size = 40> </br> <type type = text name = filedesc2 size = 30> <br> ملف 3: <br> <إدخال نوع = file name = file3 size = 40> </br> ملف 4: <br> <إدخال نوع = file name = file4 size = 40> </br> ملف 5: <br> <إدخال نوع = file name = file5 size = 40> </br> <نوع الإدخال = إرسال اسم = btnsubmit value = إرسال/> </form> </body> </html> sundyupload.asp <meta http-equiv = content-type content = text/html ؛ charset = utf-8 /> <٪ قاتمة sundyupload_sourcedata الفصل sundyupload Dim Objform ، objfile ، الإصدار ، objprogress Dim XmlPath ، charsetencoding نموذج الوظيفة العامة (Strform) strform = lace (strform) إذا لم يكن objform.exists (strform) ثم شكل = آخر النموذج = objform (strform) إنهاء إذا وظيفة نهاية ملف الوظيفة العامة (strfile) strfile = lace (strfile) إذا لم يكن objfile.exists (strfile) ثم تعيين ملف = FileInfo جديد آخر تعيين ملف = objfile (strfile) إنهاء إذا وظيفة نهاية التحميل الفرعي العام (ProgressxmlPath ، Charset) Dim requestData ، Sstart ، CRLF ، Sinfo ، iinfostart ، iinfoend ، tstream ، istart ، thefile dimfilesize ، sfilepath ، sfiletype ، sformvalue ، sfilename قاتمة IfindStart ، ifindend dimformstart ، iformend ، sformname الإصدار = التحميل عرض شريط التقدم الإصدار 1.0 تعيين OBJForm = server.createBject (scripting.dictionary) اضبط ObjFile = server.createBject (scripting.dictionary) إذا طلب. totalbytes <1 ثم الخروج تعيين tstream = server.createObject (adodb.stream) تعيين sundyupload_sourcedata = server.createBject (adodb.stream) sundyupload_sourcedata.type = 1 sundyupload_sourcedata.mode = 3 sundyupload_sourcedata.open TotalBytes خافت قاتمة chunkreadsize DITAPart DITAPART ، أجزاء قاتمة objprogress totalbytes = request.totalbytes الحجم الإجمالي chunkreadsize = 64 * 1024 'كتلة حجم 64 كيلو bytesread = 0 xmlpath = progressxmlpath charsetencoding = charset إذا charsetencoding = إذن charsetencoding = UTF-8 إنهاء إذا تعيين objprogress = تقدم جديد objprogress.progressinit (XMLPath) objprogress.updateprogress totalbytes ، 0 'حلقة القراءة مكنك افعل بينما bytesread <TotalBytes "محظور القراءة Partsize = chunkreadsize إذا قام أجزاء بتعيين BytesRead> TotalBytes ثم أجزاء = TotalBytes - BytesRead datapart = request.binaryRead (تحديد قطع الغيار) BytesRead = BytesRead Partsize sundyupload_sourcedata.write datapart objprogress.updateprogress totalbytes ، bytesread حلقة '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 بينما (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-imormstart tstream.position = 0 tstream.type = 2 tstream.charset = charsetencoding sinfo = tstream.readtext tstream.close احصل على اسم مشروع النموذج iformstart = instr (iinfoend ، requestData ، sstart) IfindStart = Instr (22 ، sinfo ، name = ، 1) 6 ifindend = inst (ifindstart ، sinfo ،، 1) sformname = lace (mid (sinfo ، ifindstart ، ifindend-ifindstart))) إذا كان ملفًا إذا instr (45 ، sinfo ، filename = ، 1)> 0 ثم اضبط thefile = جديد fileInfo احصل على اسم الملف ifindStart = inst (ifindend ، sinfo ، اسم الملف = ، 1) 10 ifindend = inst (ifindstart ، sinfo ،، 1) sfilename = mid (sinfo ، ifindstart ، ifindend-ifindstart) thefile.filename = getFilename (sfilename) thefile.filepath = getFilePath (sfilename) احصل على نوع الملف IfindStart = inst (ifindend ، sinfo ، نوع المحتوى: ، 1) 14 ifindend = inst (ifindstart ، sinfo ، vbcr) thefile.filetype = mid (sinfo ، ifindstart ، ifindend-ifindstart) thefile.filestart = iinfoend thefile.filesize = iformstart -Iinfoend -3 thefile.FormName = sformname إذا لم يكن objfile.exists (sformname) ثم objfile.add sformname ، thefile إنهاء إذا آخر إذا كان مشروع نموذج 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 إذا objform.exists (sformname) ثم objform (sformName) = objform (sformname) & ، & sformvalue آخر objform.add sformname ، sformvalue إنهاء إذا إنهاء إذا iformstart = iformstart istart 1 ويند requestData = تعيين tstream = لا شيء نهاية الفرعية sub class_initialize الخاص نهاية الفرعية sub class_terminate الخاص إذا طلب. totalbytes> 0 ثم objform.removeall objfile.removeall تعيين objform = لا شيء تعيين objfile = لا شيء sundyupload_sourcedata.close تعيين sundyupload_sourcedata = لا شيء إنهاء إذا تعيين objprogress = لا شيء تعيين objfso = server.createBject (scripting.filesystemObject) إذا objfso.filexists (xmlpath) ثم objfso.deletefile (xmlpath) إنهاء إذا تعيين OBJFSO = لا شيء نهاية الفرعية وظيفة خاصة getFilePath (FullPath) إذا كان FullPath <> ثم getFilePath = اليسار (FullPath ، Instrev (FullPath ،))) آخر getFilePath = إنهاء إذا وظيفة نهاية وظيفة خاصة getFilename (FullPath) إذا كان FullPath <> ثم getFilename = Mid (FullPath ، Instrrev (FullPath ، /) 1) آخر getFilename = إنهاء إذا وظيفة نهاية الطبقة النهائية فئة fileInfo اسم النموذج الخافت ، اسم الملف ، FilePath ، Filesize ، FileType ، Filestart sub class_initialize الخاص اسم الملف = FilePath = ملفات = 0 FileStart = 0 FormName = filetype = نهاية الفرعية الوظيفة العامة SEVEAS (FullPath) Dim Dr ، errorchar ، أنا seveas = صحيح 'الرد. write fullpath & ............... <br> 'اسم الملف = ss.txt إذا كان القطع (FullPath) = أو filestart = 0 أو اسم الملف = أو يمين (FullPath ، 1) =/ ثم وظيفة الخروج 'الرد. write 2 ............ <br> تعيين DR = CreateObject (Adodb.stream) Dr.Mode = 3 Dr.Type = 1 الدكتور sundyupload_sourcedata.position = filestart sundyupload_sourcedata.copyto DR ، Filesize Dr.Savetofile FullPath ، 2 Dr.Close تعيين DR = لا شيء seveas = خطأ وظيفة نهاية الطبقة النهائية التقدم الطبقي باهتة البهمة ، xmlpath خافت وقت البدء sub class_initialize الخاص نهاية الفرعية ProgressInit العام (XMLPathTMP) قاتمة objroot ، objchild قاتمة objpi xmlpath = xmlpathtmp تعيين objdom = server.createBject (microsoft.xmldom) تعيين objroot = objdom.createElement (التقدم) objdom.appendchild objroot تعيين objchild = objdom.createElement (TotalBytes) objchild.text = 0 objroot.appendchild objchild تعيين ObjChild = objdom.createElement (UploadBytes) objchild.text = 0 objroot.appendchild objchild تعيين objchild = objdom.createElement (تحميل) objchild.text = 0 ٪ objroot.appendchild objchild تعيين objchild = objdom.createElement (التحميل) objchild.text = 0 objroot.appendchild objchild تعيين objchild = objdom.createElement (TotalTime) objchild.text = 00:00:00 objroot.appendchild objchild تعيين objchild = objdom.createElement (اليسار) objchild.text = 00:00:00 objroot.appendchild objchild set objpi = objdom.createProcessingIntruction (xml ، version = '1.0' chigoding = 'utf-8') objdom.insertbefore objpi ، objdom.childnodes (0) objdom.save xmlpath تعيين OBJPI = لا شيء تعيين objchild = لا شيء تعيين ObjRoot = لا شيء تعيين objdom = لا شيء نهاية الفرعية Sub UpdateProgress (tbytes ، rbytes) قاتمة etime ، الوقت الحالي ، السرعة ، الإجمالي ، اليسار ، في المئة إذا كان rbytes = 0 ثم وقت البدء = مؤقت تعيين objdom = server.createBject (microsoft.xmldom) objdom.load (xmlpath) objdom.selectsinglenode (// totalBytes) .text = tbytes objdom.save (xmlpath) آخر السرعة = 0.0001 CurrentTime = مؤقت etime = currenttime - وقت البدء إذا etime> 0 ثم السرعة = rbytes / etime TotalTime = tbytes/السرعة LeftTime = (tbytes - rbytes) / السرعة النسبة المئوية = الجولة (rbytes *100 / tbytes) 'objdom.selectsinglenode (// eploadbytes) .text = rbytes 'objdom.selectsinglenode (// uploadspeed) .text = السرعة 'objdom.selectsinglenode (// totaltime) .Text = TotalTime 'objdom.selectsinglenode (// lefttime) .text = اليسار objdom.selectsinglenode (// eploadbytes) .text = formatfilesize (rbytes) و/& formatfilesize (tbytes) objdom.selectsinglenode (// uploadpercent) .text = في المئة objdom.selectsinglenode (// uploadspeed) .text = formatfilesize (speed) &/sec objdom.selectsinglenode (// totaltime) .Text = SectOtime (TotalTime) objdom.selectsinglenode (// lefttime) .Text = sectotime (اليسار) objdom.save (xmlpath) إنهاء إذا نهاية الفرعية وظائف خاصة (SEC) Dim H: H = 0 DIM M: M = 0 DIM S: S = 0 H = جولة (ثانية/3600) م = جولة ((SEC Mod 3600) / 60) S = الجولة (SEC MOD 60) إذا len (h) = 1 ثم h = 0 & h إذا len (m) = 1 ثم m = 0 & m إذا len (s) = 1 ثم s = 0 & s SectOtime = (H &: & m &: & s) وظيفة نهاية تنسيق الوظائف الخاصة (fsize) راديو قاتمة ، K ، M ، G ، UnittMP ك = 1024 م = 1024*1024 G = 1024*1024*1024 الراديو = 1 إذا إصلاح (fsize / g)> 0.0 ثم unittmp = gb راديو = ز elseif fix (fsize / m)> 0 ثم unittMP = ميغابايت راديو = م elseif fix (fsize /k)> 0 ثم unittMP = كيلو بايت راديو = ك آخر unittmp = ب الراديو = 1 إنهاء إذا إذا كان الراديو = 1 ثم FormatFilesize = fsize & & nbsp ؛ & unittmp آخر FormatFilesize = formatnumber (fsize/radio ، 3) و unittmp إنهاء إذا وظيفة نهاية sub class_terminate الخاص تعيين objdom = لا شيء نهاية الفرعية الطبقة النهائية 'http://www.cuoxin.com/ ٪> <لغة البرنامج النصي = javaScript> // ابدأ شريط التقدم وظيفة startProgress (xmlpath) { DisplayProgress () ؛ setProgressDivpos () ؛ setTimeout (DisplayProgressBar ('xmlpath') ، 500) ؛ } وظيفة DisplayProgressBar (xmlpath) { var xmldoc = new ActivexObject (msxml2.domdocument.3.0) ؛ xmldoc.async = false ؛ xmldoc.load (xmlpath) ؛ if (xmldoc.parseerror.errorcode! = 0) { var error = xmldoc.parseerror ؛ تنبيه (خطأ. setTimeout (DisplayProgressBar ('xmlpath') ، 1000) ؛ يعود؛ } var root = xmldoc.documentElement ؛ // عقدة الجذر var totalBytes = root.childnodes (0) .Text ؛ var uploadbytes = root.childnodes (1) .Text ؛ var ٪ = root.childnodes (2) .Text ؛ progrespercent.innerhtml = ٪ ٪ ؛ ProgressBar.Style.width = ٪ ؛ تحميل. exploadspeed.innerhtml = root.childnodes (3) .Text ؛ TotalTime.innerhtml = root.childnodes (4) .Text ؛ LeftTime.innerhtml = root.childnodes (5) .Text ؛ إذا (في المئة <100) { setTimeout (DisplayProgressBar ('xmlpath') ، 1000) ؛ } } وظيفة DisplayProgress () { var objprogress = document.getElementById (Progress) ؛ objprogress.style.display = ؛ } وظيفة aborteprogress () { var objprogress = document.getElementById (Progress) ؛ objprogress.style.display = لا شيء ؛ } وظيفة 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> <نوع النمط = text/css> .تقدم { الموقف: مطلق ؛ الحشو: 4px ؛ أعلى: 50 ؛ اليسار: 400 ؛ Font-Family: Verdana ، Helvetica ، Arial ، Sans-Serif ؛ حجم الخط: 12 بكسل ؛ العرض: 250 بكسل ؛ الارتفاع: 100px ؛ الخلفية: #fffbd1 ؛ اللون: #3D2C05 ؛ الحدود: 1 بكسل Solid #715208 ؛ / * موزيلا الملكية */ -Moz-Border-Radius: 5px ؛ /*-Moz-Opacity: 0.95 ؛ */ } جدول Progress ، .progress td { حجم الخط: 9pt ؛ } .حاجِز{ العرض: 100 ٪ ؛ الارتفاع: 15 بكسل ؛ خلفية اللون: #CCCCCC ؛ الحدود: 1px Inset #666666 ؛ هامش القاع: 4 بكسل ؛ } .progresspercent { حجم الخط: 9pt ؛ اللون: #000000 ؛ الارتفاع: 15 بكسل ؛ الموقف: مطلق ؛ Z-index: 20 ؛ العرض: 100 ٪ ؛ محاذاة النص: المركز ؛ } .progressbar { خلفية اللون:#91d65c ؛ العرض: 1px ؛ الارتفاع: 15 بكسل ؛ } </style> <div id = progress style = display: none ؛ فئة = تقدم> <div class = bar> <div id = progresspercent class = progresspercent> 0 ٪ </viv> <div id = progressBar class = progressBar> </viv> </div> <table border = 0 cellpacing = 0 cellpadding = 2> <tr> <td> الممنوح </td> <td>: </td> <td id = uploadsize> </td> </r> <tr> <td> تحميل سرعة </td> <td>: </td> <td id = uploadspeed> & nbsp ؛ </td> </r> <tr> <td> إجمالي الوقت </td> <td>: </td> <td id = TotalTime> & nbsp ؛ </td> </r> <tr> <td> الوقت المتبقي </td> <td>: </td> <td id = lefttime> & nbsp ؛ </td> </r> </table> </div> |
حصة: تحليل موجز لـ ASP-server.urlencode وظيفة عكسية: urldecode إذا كانت هناك مسافات ، استخدم بدلاً من ذلك. إذا كانت هناك أحرف أخرى ، استخدم ٪ ASCII بدلاً من ذلك. إذا كان هناك أربعة أحرف بايت مثل الأحرف الصينية ، فاستخدم اثنين ٪ ASCII بدلاً من ذلك. ومع ذلك ، في بعض الأحيان نحتاج أيضًا إلى فك تشفير السلسلة التي تم ترميزها ، لكن ASP لا يوفر ذات صلة