واحد. تحليل مبدأ التنفيذ لتحميل الملف على أساس 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. لطرق المعالجة المحددة ، يرجى الرجوع إلى المقدمة ذات الصلة.