'======================================================================== ============================================================
'
استخدم ASP لتنفيذ تحميل/تنزيل ملف بدون مكونات
'
'مقدمة الوظيفة
'احفظ بيانات الملف الذي تم تحميله في قاعدة البيانات، والتي يمكنها التعامل مع عدة ملفات تم تحميلها في النموذج
' ينطبق على قواعد بيانات مختلفة، استخدم أسلوب ADO للاتصال بقاعدة البيانات
' يستخدم هذا المثال قاعدة بيانات ACCESS: zj.mdb
'جدول:tb_img(id int(عمود الزيادة التلقائية)،نص المسار(255) دليل لحفظ الملفات التي تم تحميلها
'، نص fname(250) يحفظ اسم الملف الذي تم تحميله، اكتب test(250) يحفظ نوع الملف الذي تم تحميله
'، يقوم كائن img ole بحفظ محتوى الملف الذي تم تحميله
'
'
'======================================================================== ============================================================
'======================================================================== ============================================================
'
"صفحة HTML لتحميل الملفات: zj_up.htm."
'
'======================================================================== ============================================================
<أتش تي أم أل>
<الرأس>
<title>قم بتحميل الملف واحفظه في قاعدة البيانات</title>
</الرأس>
<الجسم>
<form name = "form1" enctype = "multipart/form-data" طريقة = "post" action = "zj_up.asp">
<ص>
<نوع الإدخال = "ملف" اسم = "ملف">
<نوع الإدخال = "إرسال" الاسم = "إرسال" القيمة = "تحميل">
</ص>
</النموذج>
</الجسم>
</html>
'======================================================================== ============================================================
'
'قم بتحميل الملف واحفظه في صفحة ASP لقاعدة البيانات: zj_up.asp
'
'======================================================================== ============================================================
<%
الاستجابة.انتهاء الصلاحية=0
الدالة f_Bin2Str(ByVal sBin)
خافت أنا، إيلين، iChr، iRe
إير = ""
إذا لم يكن IsNull(sBin) إذن
إيلين = لينب(sBin)
لiI = 1 إلى iLen
iChr = MidB(sBin, iI, 1)
إذا كان AscB(iChr) > 127 إذن
iRe = iRe & Chr(AscW(MidB(sBin, iI + 1, 1) & iChr))
أنا = أنا + 1
آخر
إير = إيري & مركز حقوق الإنسان (AscB (iChr))
نهاية إذا
التالي
نهاية إذا
f_Bin2Str = iRe
وظيفة النهاية
iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;معلومات الأمان المستمرة=False" & _
"؛مصدر البيانات =" & server.mappath("zj.mdb")
iSql = "tb_img"
تعيين iRe=Server.CreateObject("ADODB.Recordset")
iRe.Open iSql,iConcStr,1,3
iLen=Request.TotalBytes
sBin=Request.BinaryRead(iLen)
iCrlf1 = ChrB(13) & ChrB(10)
iCrlf2 = iCrlf1 وiCrlf1
إيلين = InStrB(1, sBin, iCrlf1) - 1
iSpc = LeftB(sBin، iLen)
sBin = MidB(sBin، iLen + 34)
iPos1 = InStrB(sBin, iCrlf2) - 1
بينما iPos1 > 0
iStr = f_Bin2Str(LeftB(sBin, iPos1))
iPos1 = iPos1 + 5
iPos2 = InStrB(iPos1، sBin، iSpc)
iPos3 = InStr(iStr, "; filename=""") + 12
إذا iPos3> 12 ثم
iStr = منتصف (iStr، iPos3)
iPos3 = InStr(iStr, Chr(13) & Chr(10) & "نوع المحتوى: ") - 2
iFn = اليسار (iStr، iPos3)
إذا iFn <> "" ثم
iRe.AddNew
ire("path")=left(iFn,instrrev(iFn,""))
iRe("fname") = mid(iFn,instrrev(iFn,"")+1)
iRe("type") = Mid(iStr, iPos3 + 18)
iRe("img").AppendChunk MidB(sBin, iPos1, iPos2 - iPos1)
تحديث
نهاية إذا
نهاية إذا
sBin = MidB(sBin، iPos2 + iLen + 34)
iPos1 = InStrB(sBin, iCrlf2) - 1
ويند
iRe. Close
تعيين iRe=لا شيء
%>
============================================================= = ============================================================================
'
صفحة ASP لتنزيل البيانات: zj_down.asp
'
'======================================================================== ============================================================
<%
Response.Buffer=صحيح
Response.Clear
iConcStr = "Provider=Microsoft.Jet.OLEDB.4.0;معلومات الأمان المستمرة=False" & _
"؛مصدر البيانات =" & server.mappath("zj.mdb")
تعيين iRe=server.createobject("adodb.recordset")
iSql = "tb_img"
iRe.open iSql,iconcstr,1,1
Response.ContentType=ire("type")
Response.BinaryWrite iRe("img")
iRe.Close
تعيين iRe=لا شيء
%>