ฉันเชื่อว่าทุกคนมีประสบการณ์นี้: มีลิงก์ในหน้าเว็บที่ชี้ไปที่ไฟล์ Word บนเซิร์ฟเวอร์ เมื่อติดตั้งเครื่องไคลเอ็นต์การคลิกที่ลิงค์จะเรียกคำเพื่อเปิดและเรียกดู; เมื่อเครื่องไคลเอนต์ไม่ได้ติดตั้งสำนักงานการคลิกลิงก์จะปรากฏขึ้นในกล่องโต้ตอบบันทึก หากต้องการสรุปหากเบราว์เซอร์รู้ประเภทไฟล์มันจะเปิดโดยอัตโนมัติ หากไม่ทราบลูกค้าจะได้รับแจ้งให้บันทึก แต่บางครั้งเราหวังว่าไม่ว่าไฟล์ประเภทใดเราจะไม่เปิดและให้ลูกค้าบันทึกโดยตรง เพื่อให้ตรงตามข้อกำหนดนี้ไฟล์ที่บันทึกไว้ในฮาร์ดดิสก์เซิร์ฟเวอร์จะต้องดำเนินการโดยใช้วิธี sendbinary ของส่วนประกอบแอสพัทโหลด สำหรับไฟล์ที่เก็บไว้ในฐานข้อมูลคุณจะต้องเปิดชุดระเบียนและส่งออกข้อมูลไบนารีโดยตรงไปยังไคลเอนต์ อย่างไรก็ตามคุณต้องบอกประเภท MIME ชื่อไฟล์และขนาดไฟล์ของเบราว์เซอร์
1. ไฟล์บนฮาร์ดไดรฟ์ฝั่งเซิร์ฟเวอร์
การคัดลอกรหัสมีดังนี้:
-
dimupload, filepath
setUpload = server.createObject ("persit.upload")
FilePath = Server.Mappath (".") & "/" & "2003529213019.txt"
'พารามิเตอร์ sendbinary คำอธิบาย:
'พารามิเตอร์ 1: ไฟล์ทางกายภาพ
'พารามิเตอร์ 2: การถ่ายโอนข้อมูลเช่นประเภท MIME ของไฟล์ไปยังเบราว์เซอร์
'พารามิเตอร์ 3: ประเภทไฟล์คุณสามารถระบุประเภท MIME เฉพาะ แต่โดยทั่วไปคุณสามารถใช้แอปพลิเคชัน/octet-binary
'พารามิเตอร์ 4: ให้ไคลเอ็นต์บันทึกไฟล์หรือเปิดโดยตรง จริง: บันทึก; เท็จ (ค่าเริ่มต้น): เปิด
Upload.SendBinaryFilePath, True, "Application/Octet-Binary", TRUE
-
2. ไฟล์ในฐานข้อมูลฝั่งเซิร์ฟเวอร์
การคัดลอกรหัสมีดังนี้:
-
dimobjconn, objrs
setObjConn = server.createObject ("adodb.connection")
setObjrs = server.createObject ("adodb.recordset"))
objconn.open "driver = {microsoft accessiver (*. mdb)}; dbq =" & server.mappath ("db1.mdb"))
objrs.open "เลือก*fromt5whereid = 2", objconn, 1,3
Response.contentType = "แอปพลิเคชัน/อ็อกเท็ต-สตรีม"
Response.addheader "เนื้อหา-การจัดสรร", "เอกสารแนบ; filename =" & objrs ("ชื่อไฟล์"))
Response.addheader "ความยาวเนื้อหา", CSTR (OBJRS ("ขนาด")) 'ที่นี่คุณต้องแปลงด้วย CSTR
Response.binaryWriteObjrs ("ไฟล์")
objrs.close
setObjrs = ไม่มีอะไร
objconn.close
setObjConn = ไม่มีอะไร
-
วิธีนี้ต้องการให้ชื่อไฟล์และขนาดไฟล์ต้องถูกบันทึกในเวลาเดียวกันเมื่อบันทึกไฟล์! หากไม่ได้ระบุชื่อไฟล์และขนาดหากเบราว์เซอร์รู้ประเภทไฟล์จะเปิดโดยอัตโนมัติ หากไม่ทราบลูกค้าจะได้รับแจ้งให้ประหยัด!