إن تحميل ملفات متعددة في نفس الوقت في تطبيق HTTP التقليدي وعرضه هو أمر مزعج للغاية. من الوثيقة أيضًا مريحة للغاية.
تنفيذ الوظيفةربما معاينة الوظائف التي تحتاج إلى القيام بها:
تتمثل الوظيفة الرئيسية في سحب ملف المجلد وإسقاطه مباشرةً في صفحة الويب وتحميله أثناء عملية التحميل.
FileInfo فئة التغليفمن أجل تسهيل قراءة معلومات الملف ، يتم تغليف فئة كائن قراءة معلومات الملف البسيطة على أساس الملف الأصلي.
fileInfo (pagesize) {this.size. الصفحات = 0 ؛ 16) ؛ LSE function () {var binary = 'var bytes = new uint8aray (this.databuffer) var len = bytes.byteLength ؛ I]) databuffer = evt .Target.Result ؛ }} fileInfo. القارئ [tag] this ؛ العد ؛ قناة = ملف }}} الدالة (النتيجة) {if (result.status == null || if (file.pageIndex <file.pages) {file.load (file.onuploaddata) ؛}} {if (file.uploaderror! = null) file.uploaderror (ملف ، data.status) ؛}) ؛ = دالة (قناة ، url) {var fi = this ؛ if (if (if (if result.status == null || result.status == undefined) {fi._channel = channel ؛ fi._url = result.data ؛ fi.load (fi.onuploaddata) ؛ (ملف. UploadError! = null) file.uploaderror (fi ، result.status) ؛}}) ؛}
تتم تهيئة بعض معلومات الملفات من خلال تهيئة الملف ، ويتم تحديد حجم الملفات ، مثل عدد الصفحات والصفحات. ملف.
ملف السحب والإفلاتليس من الضروري القيام بأشياء معقدة في HTML5 ليتم جرها في HTML5.
وظيفة OnDragenter (E) {E.StopPropagation () ؛ (E) {E.StopPropagation () ؛ ("Rounded") ؛
تحتاج فقط إلى الحصول على ملفات السحب والإسقاط ذات الصلة أثناء عملية ONDROP.
في هذا الوقت ، تحتاج فقط إلى إنشاء كائن FileInfo ذي الصلة للملف المحدد ، واتصل طريقة التحميل.
وظيفة OnFileOpen (ملفات) {if (files.length> 0) {for (var i = 0 ؛ i <files.length ؛ i ++) {var info = new FileInfo (files [i] ، 32768) ؛ ؛
قم بتحديث معلومات تقدم ملف التحميل من خلال حدث UploadProcess
دالة onuploadprocess (ملف) {$ ('#p_' + file.id) .progressBar ({value: (file.pageindex / file.pages) * 100 ، النص: file.filename + ' + fi le.uploadbytes +' / ' + file.size +'] '}) ؛}C#جانب الخدمة
بمساعدة دعم Beetle لـ WebSocket ، يكون تنفيذ الخادم المقابل بسيطًا جدًا
/// <summary> /// حقوق الطبع والنشر © Henryfan 2012 /// CreateTime: 2012/12/14 21:13:34 /// الصفحات ، السلسلة base64data) {console.writeline (fileId: {2} ، pageIndex: {0} الصفحات: {1} datalength: {3} ، pageIndex ، fileId ، base64data.lengt h) ؛ اسم ملف السلسلة ، الحجم الطويل) {console.writeline (fileId: {2} ، اسم الملف: {0} الحجم: {1} ، اسم الملف ، FileId) ؛
هناك نوعان في طريقة الخادم لتحميل طلبات الملفات ، وطريقة استلام كتلة ملف التحميل.
لخصتحتاج فقط إلى رمز بسيط أعلاه لتحقيق وظيفة تحميل متعددة. تعتبر معالجة Mask Plus Plus Plus ثقيلة نسبيًا.
تنزيل رمز: WebSocketUpload.rar
ما سبق هو كل محتويات هذا المقال.