عندما نعمل على مشاريع الويب ، غالبًا ما نحتاج إلى استخدام وظيفة تحميل الملفات ، ولكن تحميل أنواع مختلفة من الملفات في بيئة التطبيق المستندة إلى المتصفح/الخادم قد أزعجت دائمًا المستخدمين. إذن ما هي طريقة ASP لتحميل الملفات؟
واحد. تحليل مبدأ التنفيذ لتحميل الملف على أساس ASP
المبدأ الأساسي هو: استخدم طريقة BinaryRead لكائن دفق ADO لقراءة جميع البيانات في النموذج ، واعتراض بيانات الملف المطلوبة ، وحفظها في الملفات الثنائية.
فيما يلي مثال على صفحة ملف التحميل (Upload.htm):
< html >< body >< name form = "upload" method = "post" enctype = "multipart/form-data" action = "appload.asp"> < inport type = "file" name = "filename"> < inport type = "pridt"
يتم استخدام كائن الملف في البرنامج ، بحيث تقرأ البيانات الأصلية باستخدام طريقة BinaryRead في expload.asp فقط بيانات الملف المحدد نفسه ، ولكن تحتوي أيضًا على وصف للمسار والنوع واسم نطاق النموذج لصفحة التقديم والمعلومات الأخرى ذات الصلة على القرص الصلب للمستخدم. وبهذه الطريقة ، نحتاج إلى استخراج المحتوى المحدد للملف منه. وفقًا للتحليل ، فإن الخط الفاصل بين معلومات الرأس للبيانات والبيانات عبارة عن زوجين من فواصل سطر إرجاع النقل ، وهناك أيضًا معلومات فصل في النهاية. يمكننا استخدام طريقة مماثلة للحصول على بيانات الملف.
dim formdata.formsize ، datastart ، clstr ، divStRomsize = request.totalbytesformData = request.binaryRead (formize) DivStr = LeftB (formdata ، instrb (formdata ، clstr) -1) datasize = instrb (datastart+1 ، formdata ، divstr) -datastart-2formdata = midb (formdata ، dataStart ، datasize) formdata هو محتوى الملف.
يمكن إجراء العلاج المقابل حسب الحاجة في الوسط. الوظيفة النهائية هي حفظ الملف. هناك طريقتان للحفظ: أحدهما هو استخدام طرق تشغيل الملفات الثنائية في برامج مثل VB أو VC ، وإضافة مكتبات النوع المناسبة إلى المشروع ، وأخيراً تجميعها في ملف DLL ، وتسجيل ملف DLL عند استخدامه. برنامج تخزين الملفات كما يلي:
الوظيفة العامة SaveFile (pathname as string) كسلسلة dim objContext as ObjectContext dim objRequest as request set objContext = getObjectContext () set objrequest = objContext ("request") 'الجزء التالي من الكود هو عملية ذات صلة بتخزين الملف dimdata () datasize = objrequest.totalbytes redim formdata (datasize-1) formData = objrequest.binaryRead (datasize) datasize = instrb (datastart+1 ، formdata ، divstr) -datastart-2 formData = midb (formdata ، dataStart ، datasize) 'إنشاء ملف ثنائي وكتابة formdata لفتح اسم المسار الثنائي كـ 1 pum #1 ، و formdata close #1 savefile = "ok!" وظيفة نهايةالطريقة الثانية هي استخدام طريقة تشغيل الملفات الثنائية المتوفرة في دفق ADO لإكمالها. البيان لحفظ الملف هو: STERMOOBJ.SAVETOFILE (اسم الملف ، 2). في هذا النوع من التشغيل ، يمكننا تخزين العمليات ذات الصلة في ملف الفصل. عند التقديم ، فقط قم بتضمين ملف الفصل في برنامج ASP. لطرق المعالجة المحددة ، يرجى الرجوع إلى المقدمة ذات الصلة.
اثنين. مثال طريقة تطبيق تحميل الملف
لتنفيذ تحميل الملفات ، يمكنك استخدام المكونات أو الأساليب الخالية من المكونات. بالنسبة لفئات المكونات ، مثل Microsoft Posting receptor (MPA لفترة قصيرة) ، فهو مكون خادم مجاني يصدره Microsoft. تركيب هذه المكونات هو أيضا أكثر ملاءمة. بالنسبة ل Microsoft MPA ، ما عليك سوى تشغيل ملفات التثبيت الخاصة بها. لنموذج مكون DLL العام ، نحتاج إلى التسجيل. على سبيل المثال ، لاستخدام aspcnup.dll ، فقط قم بتنفيذ REGSVR32 [PATH/] ASPCNUP.DLL على النافذة 2000 ، ويطالب النظام بأن التسجيل ناجح ، يمكنك استخدام هذا المكون ؛ بالنسبة للفئة بدون مكون ، عند استخدامها ، فقط قم بتضمين العبارات التالية في المعالج:
<!-#include file = "epload.inc"-> SET LOAD = جديد expload_5xsoft 'إنشاء كائن تحميل
بالنسبة للخصائص وطرق التشغيل ، يرجى الرجوع إلى دليل المستخدم لهذا المكون.
فيما يلي رمز المصدر (expload.asp) لتحميل بعض أنواع الملفات باستخدام مكون aspcnup.dll كمثال:
< ٪ @ language = "vbscript" set fileup = server.createObject ("aspcn.upload") fileup.maxSize = 200000 fileup.path = "d:/upfile" fileup.upload for i = 0 to fileup.count fieldname = fileup.fieldname (i) ايليوب.لا يزال نموذج تطبيق المتصفح/الخادم يتطور بسرعة. في Microsoft التي تم إطلاقها حديثًا ASP.NET ، كانت وظيفة تحميل الملف مدمجة ، مما يجعلها بسيطة للغاية ومريحة للاستخدام. كتقنية جديدة تمامًا ، ليست ASP.NET مجرد ترقية بسيطة لـ ASP. إنه إطار عمل جديد لتطوير الويب ، والذي يحتوي على العديد من الميزات الجديدة. يوفر ASP.NET رمز هيكل ASP.NET أسهل في الكتابة وأكثر وضوحًا ، وسنكون قادرين على إعادة استخدام ومشاركة أكثر بسهولة ، وبالتالي تطوير برامج أكثر عملية.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون محتوى هذه المقالة من بعض المساعدة في دراسة أو عمل الجميع. آمل أيضًا دعم قناة التكنولوجيا الجديدة الخاطئة!