يمكنك استخدام التنزيل المتدفق (استهلاك الذاكرة، استخدام أقل) أو الانتقال مباشرة إلى الملف.
<%
Const USE_STREAM = 0 '0 تنزيل بدون دفق (Adodb.Stream) 1. قم بالتنزيل باستخدام الدفق
Const ALLOW_FILE_EXT = "rar,zip,chm,doc,xls,swf,mp3,gif,jpg,jpeg,png,bmp" 'السماح بامتداد الملف الذي تم تنزيله لمنع تنزيل الكود المصدري
Dim sDownFilePath 'مسار تنزيل الملف
sDownFilePath = Trim(Request("FilePath"))
'أو احصل على مسار الملف من قاعدة البيانات بناءً على معرف الملف الذي تم تمريره
' إذا كان sDownFilePath هو مسار مطلق، فتأكد من تحويل sDownFilePath إلى مسار نسبي لهذا الملف'sDownFilePath
= "focus.swf"
استدعاء
وظيفة DownloadFile(sDownFilePath) DownloadFile (s_DownFilePath)
'تحديد ما إذا كان قد تم تمرير اسم الملف
إذا كان IsNull(s_DownFilePath) = True أو Trim(s_DownFilePath) = "" إذن
OutputErr "خطأ: قم أولاً بتحديد الملف المراد تنزيله، فشل التنزيل"
End If
'تحديد ما إذا كان التمديد قانونيًا
Dims_FileExt
s_FileExt = Mid(s_DownFilePath, InstrRev(s_DownFilePath, "."")+1)
إذا كان InStr("،" & ALLOW_FILE_EXT & "،"، ""، & s_FileExt & ")، <= 0 ثم
OutputErr "خطأ: لا يُسمح بتنزيل نوع الملف (" & s_FileExt & ") وفشل التنزيل"
نهاية إذا
s_DownFilePath = Replace(s_DownFilePath, "", "/")
'لأسباب أمنية، يُحظر تنزيل الملفات في بعض الأدلة ويتم التعامل معه هنا.
'
'تحقق مما إذا كان الخادم يدعم fso
خافت o_Fso
على خطأ استئناف التالي
تعيين o_Fso = Server.CreateObject("Scripting.FileSystemObject")
إذا Err.Number <> 0 ثم
خطأ.واضح
OutputErr "خطأ: الخادم لا يدعم مكون fso وفشل التنزيل"
إنهاء إذا كان
"الحصول على اسم الملف وحجم الملف".
Dims_FileMapPath
خافت o_File، s_FileName، n_FileLength
s_FileMapPath = Server.MapPath(s_DownFilePath)
إذا (o_Fso.FileExists(s_FileMapPath)) = صحيح إذن
تعيين o_File = o_Fso.GetFile(s_FileMapPath)
s_FileName = o_File.Name
n_FileLength = o_File.Size
o_File.Close
آخر
OutputErr "خطأ: الملف غير موجود، فشل التنزيل"
نهاية إذا
Set o_Fso = Nothing
'تحديد ما إذا كان حجم الملف الذي تم تنزيله يتجاوز الحد الأقصى أم
لا
'
"إذا لم يتم تنزيله عن طريق الدفق، فانتقل مباشرة إلى الملف
إذا كان USE_STREAM = 0 إذن
الاستجابة. إعادة توجيه sDownFilePath
الاستجابة.نهاية
End If
'اكتشف ما إذا كان الخادم يدعم Adodb.Stream
على خطأ استئناف التالي
تعيين o_Stream = Server.CreateObject("Adodb.Stream")
إذا Err.Number <> 0 ثم
خطأ.واضح
OutputErr "خطأ: الخادم لا يدعم مكون Adodb.Stream وفشل التنزيل"
النهاية إذا
o_Stream.Tyep = 1
o_Stream.Open
o_Stream.LoadFromFile s_FileMapPath
Response.Buffer = True
الاستجابة.واضحة
Response.AddHeader "ترتيب المحتوى"، "المرفق؛ اسم الملف =" & s_FileName
Response.AddHeader "طول المحتوى"، n_FileLength
Response.CharSet = "UTF-8"
Response.ContentType = "التطبيق/الدفق الثماني"
Response.BinaryWrite o_Stream.Read
الاستجابة. تدفق
o_Stream.Close
Set o_Stream = لا شيء
نهاية الوظيفة
Sub OutputErr(s_ErrMsg)
Response.اكتب "<font color=red>" & s_ErrMsg & "</font>"
الاستجابة.النهاية
النهاية الفرعية
%>
http://www.cnblogs.com/jiny-z/archive/2006/08/29/489102.html