أعتقد أن كل شخص لديه هذه التجربة: يوجد رابط على الصفحة يشير إلى ملف كلمة على الخادم. عندما يكون جهاز العميل مثبتًا على المكتب ، فإن النقر فوق الرابط سيتصل بالكلمة لفتح وتصفح ؛ عندما لا يكون جهاز العميل مثبتًا على المكتب ، فإن النقر فوق الرابط سوف يظهر مربع الحوار "حفظ". لتلخيص ، إذا كان المتصفح يعرف نوع الملف ، فسيتم فتحه تلقائيًا ؛ إذا لم يكن الأمر كذلك ، فسيتم مطالب العميل بالحفظ. لكن في بعض الأحيان نأمل أنه بغض النظر عن نوع الملف ، لن نفتحه وندع العميل يحفظه مباشرة. لتلبية هذا المطلب ، يجب تنفيذ الملفات المحفوظة على القرص الثابت الخادم باستخدام الطريقة المرسلة لمكون ASPUPload. بالنسبة للملفات المخزنة في قاعدة البيانات ، تحتاج فقط إلى فتح مجموعة السجلات وإخراج البيانات الثنائية مباشرة إلى العميل. ومع ذلك ، تحتاج إلى إخبار نوع MIME ، اسم الملف وحجم الملف الخاص بملف المتصفح.
1. الملفات على محرك الأقراص الصلبة جانب الخادم
نسخة الكود كما يلي:
<٪
dimupload ، filepath
setupload = server.createBject ("persits.upload")
FilePath = server.mappath (".") و "/" & "2003529213019.txt"
'الوصف المعلمة الإرسال:
'المعلمة 1: ملف المسار الفعلي
'المعلمة 2: ما إذا كنت لن تنقل معلومات مثل نوع MIME للملف إلى المتصفح
"المعلمة 3: نوع الملف ، يمكنك تحديد نوع MIME المحدد ، ولكن عمومًا يمكنك استخدام التطبيق/الثماني
"المعلمة 4: دع العميل يحفظ الملف أو فتحه مباشرة. صحيح: حفظ ؛ خطأ (افتراضي): فتح
تحميل
٪>
2. الملفات في قاعدة بيانات جانب الخادم
نسخة الكود كما يلي:
<٪
Dimobjconn ، objrs
setObjConn = server.createObject ("adodb.connection")
setObjrs = server.createBject ("adodb.recordset")
objconn.open "driver = {microsoft accessDriver (*.
objrs.open "Select*fromt5whereid = 2" ، objconn ، 1،3
استجابة. contenttype = "التطبيق/ثنائي الثماني"
Response.addheader "Disposition" ، "المرفق ؛ filename =" & objrs ("اسم الملف")
Response.Addheader "طول المحتوى" ، CSTR (OBJRS ("الحجم")) "هنا يجب تحويلها باستخدام CSTR
استجابة.
objrs.close
setObjrs = لا شيء
objconn.close
setObjConn = لا شيء
٪>
تتطلب هذه الطريقة أن يتم حفظ اسم الملف وحجم الملف في نفس الوقت عند حفظ الملف! إذا لم يتم تحديد اسم الملف وحجمه ، إذا كان المتصفح يعرف نوع الملف ، فسيتم فتحه تلقائيًا ؛ إذا لم يكن يعرف ، فسيتم مطالب العميل بالحفظ!