'=================================================' = =================
-
' ใช้ ASP เพื่ออัพโหลด/ดาวน์โหลดไฟล์แบบไม่มีคอมโพเนนต์
-
'แนะนำฟังก์ชั่น
'บันทึกข้อมูลไฟล์ที่อัพโหลดลงในฐานข้อมูล ซึ่งสามารถจัดการไฟล์ที่อัพโหลดหลายไฟล์ในรูปแบบได้
' ใช้ได้กับฐานข้อมูลต่าง ๆ ใช้วิธีการ ADO เพื่อเชื่อมต่อกับฐานข้อมูล
' ตัวอย่างนี้ใช้ฐานข้อมูล ACCESS: zj.mdb
'Table:tb_img(id int(คอลัมน์เพิ่มอัตโนมัติ),ข้อความพาธ(255) ไดเร็กทอรีสำหรับบันทึกไฟล์ที่อัพโหลด
' ,fname text(250) บันทึกชื่อของไฟล์ที่อัพโหลด, พิมพ์ test(250) บันทึกประเภทของไฟล์ที่อัพโหลด
' วัตถุ img ole จะบันทึกเนื้อหาไฟล์ที่อัพโหลด
-
-
'=================================================' = =================
'=================================================' = =================
-
'หน้า HTML สำหรับการอัพโหลดไฟล์: zj_up.htm
-
'=================================================' = =================
<html>
<หัว>
<title>อัปโหลดไฟล์และบันทึกลงฐานข้อมูล</title>
</หัว>
<ร่างกาย>
<ชื่อแบบฟอร์ม = "form1" enctype = "หลายส่วน/แบบฟอร์มข้อมูล" วิธีการ = "โพสต์" การกระทำ = "zj_up.asp">
<p>
<ประเภทอินพุต = "ไฟล์" ชื่อ = "ไฟล์">
<input type="submit" name="Submit" value="Upload">
</p>
</แบบฟอร์ม>
</ร่างกาย>
</html>
'=================================================' = =================
-
'อัปโหลดไฟล์และบันทึกลงในหน้า ASP ของฐานข้อมูล: zj_up.asp
-
'=================================================' = =================
-
การตอบกลับหมดอายุ=0
ฟังก์ชัน f_Bin2Str(ByVal sBin)
ติ่ม iI, iLen, iChr, iRe
iRe = ""
ถ้าไม่ใช่ IsNull(sBin) แล้ว
iLen = LenB(sBin)
สำหรับ iI = 1 ถึง iLen
iChr = MidB(sBin, iI, 1)
ถ้า AscB(iChr) > 127 แล้ว
iRe = iRe & Chr(AscW(MidB(sBin, iI + 1, 1) & iChr))
ฉัน = ฉัน + 1
อื่น
iRe = iRe & Chr(AscB(iChr))
สิ้นสุดถ้า
ต่อไป
สิ้นสุดถ้า
f_Bin2Str = iRe
ฟังก์ชันสิ้นสุด
iConcStr = "ผู้ให้บริการ=Microsoft.Jet.OLEDB.4.0;ข้อมูลความปลอดภัยคงอยู่=เท็จ" & _
";แหล่งข้อมูล=" & server.mappath("zj.mdb")
iSql="tb_img"
ตั้งค่า iRe=Server.CreateObject("ADODB.Recordset")
iRe.Open iSql,iConcStr,1,3
iLen=คำขอ TotalBytes
sBin=Request.BinaryRead(iLen)
iCrlf1 = ChrB(13) & ChrB(10)
iCrlf2 = iCrlf1 และ iCrlf1
iLen = InStrB(1, sBin, iCrlf1) - 1
iSpc = LeftB(sBin, iLen)
sBin = MidB(sBin, iLen + 34)
iPos1 = InStrB(sBin, iCrlf2) - 1
ในขณะที่ iPos1 > 0
iStr = f_Bin2Str(ซ้ายB(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("ประเภท") = กลาง(iStr, iPos3 + 18)
iRe("img").ผนวก MidB(sBin, iPos1, iPos2 - iPos1)
iRe.อัปเดต
สิ้นสุดถ้า
สิ้นสุดถ้า
sBin = MidB(sBin, iPos2 + iLen + 34)
iPos1 = InStrB(sBin, iCrlf2) - 1
เวนด์
iRe.ปิด
ตั้งค่า iRe=Nothing
%>
'=============================================== = ===================
-
' หน้า ASP สำหรับการดาวน์โหลดข้อมูล: zj_down.asp
-
'=================================================' = =================
-
Response.Buffer=จริง
Response.Clear
iConcStr = "ผู้ให้บริการ = 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("ประเภท")
Response.BinaryWrite iRe("img")
iRe.close
ตั้งค่า iRe=Nothing
-