เมื่อไม่กี่วันที่ผ่านมา จำเป็นต้องมีการเพิ่มฟังก์ชันการดาวน์โหลดการจัดการไฟล์ลงในระบบ
ดังนั้นให้เพิ่มโค้ดต่อไปนี้:
-
Response.ContentType = mime; // ประเภท MIME ที่สอดคล้องกัน
Response.AppendHeader("การจัดการเนื้อหา", "ไฟล์แนบ; filename="" +fileName + """);
Response.BinaryWrite(bytes);
การตอบสนองสิ้นสุด();
-
เมื่อชื่อไฟล์มีอักขระภาษาจีน เมื่อไฟล์ถูกดาวน์โหลดและบันทึก ชื่อไฟล์จะอ่านไม่ออกและจำเป็นต้องแก้ไขโดยผู้ใช้ ซึ่งขัดต่อความตั้งใจดั้งเดิมของฉันในการตั้งค่าชื่อไฟล์เริ่มต้น
โซลูชันที่ 1: ชื่อไฟล์เข้ารหัส URL และเปลี่ยนประโยคที่ขีดเส้นใต้เป็น
Response.AppendHeader("การจัดการเนื้อหา", "ไฟล์แนบ; ชื่อไฟล์="" + Server.UrlEncode(ชื่อไฟล์) + """);
แค่นั้นแหละ.
แม้ว่าปัญหาอักขระภาษาจีนที่อ่านไม่ออกจะได้รับการแก้ไขแล้ว แต่ก็ยังมีปัญหาอื่นอยู่: ในระหว่างการทดสอบ ชื่อของไฟล์ที่ดาวน์โหลดและบันทึกบางครั้งจะกลายเป็นชื่อของเพจ (.aspx) แม้ว่าเนื้อหาจะสามารถดาวน์โหลดได้ในเครื่องก็ตาม จำเป็นต้องเปลี่ยนชื่อและประเภท ซึ่งจะทำให้เกิดความสับสนอย่างมากต่อผู้ใช้
มีวิธีอื่นในการแก้ปัญหาสองข้อข้างต้นอย่างง่ายดาย:
โซลูชันที่ 2: สมมติว่า URL ปัจจุบันคือ http://localhost/download.aspx?id=123 และชื่อไฟล์คือ "Download.pdf" เราเพียงแต่ต้องเปลี่ยน URL ดาวน์โหลดเป็น http://localhost/download.aspx
เลย คุณจะพอใจกับผลลัพธ์มาก!