แนะนำ: วิธีใช้โปรแกรม ASP เพื่อตรวจสอบว่ามีไฟล์บนดิสก์ ต่อไปนี้เป็นเนื้อหาที่ยกมา: <%dim objfolderdim objfsodim j set fso = server.createObject (scripting.filesystemobject & q
ฉันพบปัญหาดังกล่าวเมื่อใช้ ASP เพื่อสร้างหน้าเว็บสำหรับหน่วยบางหน่วย ในระบบ MIS ก่อนหน้าของหน่วยไฟล์ Word บางไฟล์ถูกบันทึกไว้ในฐานข้อมูลในรูปแบบของสตรีมไบต์ ตอนนี้ผู้ใช้ขอให้ฉันใช้ ASP เพื่อนำข้อมูลไฟล์คำเหล่านี้ออกจากฐานข้อมูลและแสดงในหน้าเว็บ ในตอนแรกฉันคิดว่าการสร้างไฟล์ชั่วคราวบนเซิร์ฟเวอร์โดยธรรมชาติจากนั้นเพิ่มลิงก์ไปยังไฟล์ชั่วคราวไปยังหน้าเว็บ อย่างไรก็ตามวิธีนี้จะเพิ่มภาระบนเซิร์ฟเวอร์อย่างมากและวิธีการตรวจสอบให้แน่ใจว่าไฟล์ชั่วคราวที่ใช้โดยไคลเอนต์เฉพาะจะไม่ถูกเขียนทับโดยไฟล์ที่ใช้โดยไคลเอนต์อื่น ๆ ในบริการและวิธีการลบไฟล์หลังจากที่ไฟล์ถูกโอนไปยังผู้ใช้ ปัญหาเหล่านี้ยากที่จะแก้ไข มีวิธีที่ดีกว่านี้ไหม
--- ด้วยเหตุนี้ฉันจึงดูหนังสืออ้างอิง ASP อย่างรอบคอบและพบว่าวัตถุตอบสนองมีคุณสมบัติที่เรียกว่า ContentType ซึ่งกำหนดประเภทของ MIME ของเนื้อหาที่ส่งไปยังไคลเอนต์โดยเซิร์ฟเวอร์ ชื่อเต็มของ MIME คือส่วนขยายทางอินเทอร์เน็ตอเนกประสงค์ซึ่งเป็นส่วนขยายทางอินเทอร์เน็ตอเนกประสงค์ เรารู้ว่าในการเขียนโปรแกรมเว็บบางครั้งเราชี้ไฮเปอร์ลิงก์ไปยังไฟล์คำหรือ excel เมื่อผู้ใช้คลิกที่ลิงค์นี้เบราว์เซอร์จะเรียกใช้วิธีการที่สอดคล้องกันโดยอัตโนมัติเพื่อเปิดไฟล์ เหตุผลที่สามารถทำได้คือหลังจากติดตั้งสำนักงานบนเครื่องของผู้ใช้ประเภททรัพยากร MIME ที่สอดคล้องกันจะลงทะเบียนในเบราว์เซอร์ ตัวอย่างเช่นประเภท MIME ของไฟล์ Word คือ Application/Msword (เดิมคือประเภท MIME และหลังเป็นคลาสย่อย MIME) และประเภททรัพยากร MIME ของไฟล์ Excel คือแอปพลิเคชัน/msexcel ในความเป็นจริงทรัพยากรทั้งหมดที่สามารถประมวลผลได้โดยเบราว์เซอร์มีประเภททรัพยากร MIME ที่สอดคล้องกัน ตัวอย่างเช่นประเภท MIME ของไฟล์ HTML คือ Text/HTML และประเภท MIME ของไฟล์ JPG คือ Image/JPG ในการโต้ตอบกับเซิร์ฟเวอร์เบราว์เซอร์จะกำหนดประเภทของการประมวลผลที่จะดำเนินการตามประเภท MIME ของข้อมูลที่ได้รับเปิดโดยตรงสำหรับเบราว์เซอร์ไฟล์เช่น HTML และ JPG และเรียกวิธีการที่เกี่ยวข้องเพื่อเปิดไฟล์ที่ไม่สามารถเปิดได้โดยเบราว์เซอร์เช่น Word และ Excel สำหรับไฟล์ที่ไม่ได้ทำเครื่องหมายด้วยประเภท MIME เบราว์เซอร์จะเดาประเภทของมันตามเนื้อหาส่วนขยายและไฟล์ หากเบราว์เซอร์ไม่สามารถเดาได้ให้ใช้เป็นแอปพลิเคชัน/แอปพลิเคชัน เพื่อทำความเข้าใจประเภท MIME ของไฟล์ต่าง ๆ โปรดตรวจสอบใน win98 ของฉันคอมพิวเตอร์ของฉัน -> ดู -> ตัวเลือกโฟลเดอร์ -> ประเภทไฟล์
---- ดังนั้นฉันจึงมีแรงบันดาลใจอย่างฉับพลันและคิดว่าใน ASP ฉันสามารถนำข้อมูลคำในสตรีมไบต์ก่อนจากนั้นทำเครื่องหมายแอตทริบิวต์ contentType เป็นแอปพลิเคชัน/msword จากนั้นส่งไปยังลูกค้า หลังจากที่ลูกค้าได้รับทรัพยากรนี้มันจะเรียกคำพูดบนไคลเอนต์โดยอัตโนมัติตามประเภท MIME (แน่นอนหลักฐานคือคำที่ติดตั้งบนไคลเอนต์มิฉะนั้นจะใช้เป็นทรัพยากรที่ไม่รู้จักและแจ้งให้ผู้ใช้บันทึกแทนการเปิด) เพื่อเปิด ผลการทดสอบนั้นดีมากวิธีนี้ง่ายและรวดเร็วและใน IE 5 เบราว์เซอร์ใช้วิธีการฝังตัว (คล้ายกับวิธี OLE) ซึ่งมีผลลัพธ์ที่ดีกว่า ต่อไปนี้เป็นเนื้อหาของโปรแกรม
--- สมมติว่าชื่อตารางเป็น tab_word และมีสองฟิลด์ในตาราง หนึ่งคือประเภทจำนวนเต็มและ ID ซึ่งใช้เป็นตัวระบุที่ไม่ซ้ำกันของข้อมูลคำ อีกประเภทหนึ่งคือประเภทหยดและ worddata ซึ่งเก็บข้อมูลคำ ตอนนี้เพื่อแสดงเนื้อหาของไฟล์ Word ที่มี ID เท่ากับ 1 ในหน้าโปรแกรม ASP มีดังนี้:
| - 'Conn - การเชื่อมต่อฐานข้อมูลที่สร้างขึ้น 'rs - ชุดผลลัพธ์ rs = conn.execute (เลือก WordData จาก tab_word โดยที่ id = 1) Response.ContentType = แอปพลิเคชัน/msword Response.writeBinary (RS (WordData)) 'โปรดทราบว่าข้อมูลในชุดผลลัพธ์จะถูกส่งโดยตรงโดยใช้ WriteBinary และอย่าใช้ตัวแปร 'รับข้อมูลนี้มิฉะนั้นระบบจะรายงานข้อผิดพลาด - |
แบ่งปัน: ความละเอียดผิดพลาด: วิธีแก้ปัญหาการหมดเวลาของสคริปต์ ASP ที่กำลังทำงานอยู่ ฉันกำลังเรียนรู้ความรู้เซิร์ฟเวอร์เมื่อเร็ว ๆ นี้ บางครั้งฉันพบข้อผิดพลาดที่สคริปต์ ASP ทำงานหมดเวลาซึ่งเป็นปัญหาจริงๆ ฉันพบข้อมูลที่เกี่ยวข้องและมีวิธีแก้ปัญหาบางอย่าง การหมดเวลาสคริปต์เริ่มต้นของ IIS คือ 90 วินาที หากคุณอัปโหลดซอฟต์แวร์หรือถ่ายโอนข้อมูลมากกว่า 90 วินาที