เมื่อลิงก์เอกสารใน IE หากพบเอกสารที่ OLE รองรับ IE จะเรียกโปรแกรมที่เกี่ยวข้องให้เปิดโดยอัตโนมัติ บางครั้งฟังก์ชันนี้อาจไม่ใช่สิ่งที่เราต้องการ แม้ว่าเราจะเตือนผู้ใช้ให้คลิกขวาที่เมาส์--> ได้ บันทึกเป้าหมายเป็น ... คำสั่งเพื่อดาวน์โหลดเอกสาร แต่บทความนี้ไม่เป็นมิตรมากนัก บทความนี้จะอธิบายการใช้วิธี FSO และ Stream เพื่อดำเนินการดาวน์โหลดเอกสารโดยตรงโดย IE <%@ language=เพจรหัส vbscript=65001%>
-
'ต้องป้อนชื่อไฟล์'
ถ้า Request(Filename)= แล้ว
response.write <h1>ข้อผิดพลาด:</h1>ชื่อไฟล์ว่างเปล่า!<p>
อื่น
โทรดาวน์โหลดไฟล์ (แทนที่ (แทนที่ (คำขอ (ชื่อไฟล์),/,),/,))
ฟังก์ชั่นดาวน์โหลดไฟล์ (strFile)
' ตรวจสอบให้แน่ใจว่าคุณใช้ MDAC เวอร์ชันล่าสุดเพื่อให้สิ่งนี้ใช้งานได้
'รับเส้นทางแบบเต็มของไฟล์ที่ระบุ
strFilename = เซิร์ฟเวอร์ MapPath (strFile)
' ล้างบัฟเฟอร์
Response.Buffer = จริง
การตอบสนองชัดเจน
' สร้างกระแส
ชุด s = Server.CreateObject (ADODB.Stream)
s.เปิด
' ตั้งเป็นไบนารี่
s.ประเภท = 1
' โหลดไฟล์
เมื่อเกิดข้อผิดพลาดดำเนินการต่อต่อไป
'ตรวจสอบว่ามีไฟล์อยู่'
ตั้งค่า fso = Server.CreateObject (Scripting.FileSystemObject)
ถ้าไม่ใช่ fso.FileExists(strFilename) แล้ว
Response.Write(<h1>ข้อผิดพลาด:</h1>&strFilename& ไม่มีอยู่!<p>)
การตอบสนองสิ้นสุด
สิ้นสุดถ้า
'รับความยาวของไฟล์
ตั้งค่า f = fso.GetFile (strFilename)
intFilelength = f.size
s.LoadFromFile(strFilename)
ถ้าทำผิด
Response.Write(<h1>ข้อผิดพลาด: </h1>ข้อผิดพลาดที่ไม่รู้จัก!<p>)
การตอบสนองสิ้นสุด
สิ้นสุดถ้า
' ส่งส่วนหัวไปยังผู้ใช้เรียกดู
Response.AddHeader การจัดการเนื้อหา,ไฟล์แนบ;
Response.AddHeader ความยาวเนื้อหา intFilelength
Response.CharSet = UTF-8
Response.ContentType = แอปพลิเคชัน/octet-stream
'ส่งออกไฟล์ไปยังเบราว์เซอร์
Response.BinaryWrite s.อ่าน
การตอบสนองฟลัช
' เรียบร้อย
s.ปิด
เซต s = ไม่มีเลย
สิ้นสุดฟังก์ชัน
สิ้นสุดถ้า
-