คุณต้องใช้file:///
โปรโตคอล (ใช่นั่นคือสามสแลช) หากคุณต้องการเชื่อมโยงไปยังไฟล์ในเครื่อง
<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
สิ่งเหล่านี้จะไม่เปิดไฟล์ในแอปพลิเคชันในพื้นที่ของคุณโดยอัตโนมัติ สำหรับเหตุผลด้านความปลอดภัยที่ฉันจะกล่าวถึงในส่วนสุดท้าย หากเปิดขึ้นจะเปิดเฉพาะในเบราว์เซอร์เท่านั้น หากเบราว์เซอร์ของคุณสามารถแสดงไฟล์ได้มิฉะนั้นจะถามว่าคุณต้องการดาวน์โหลดไฟล์หรือไม่
เบราว์เซอร์หลายรุ่นทันสมัย (เช่น Firefox และ Chrome) จะปฏิเสธที่จะข้ามจากโปรโตคอล HTTP ไปยังโปรโตคอลไฟล์เพื่อป้องกันพฤติกรรมที่เป็นอันตราย คุณจะต้องเปิดหน้าเว็บของคุณในเครื่องโดยใช้โปรโตคอลไฟล์หากคุณต้องการทำสิ่งนี้เลย
ทำไมมันถึงติดขัดโดยไม่ต้องfile:///
?
ส่วนแรกของ URLคือโปรโตคอล โปรโตคอลเป็นตัวอักษรสองสามตัวจากนั้นเครื่องหมายโคลอนและเครื่องหมายสแลชสองตัว HTTP://
และFTP://
เป็นโปรโตคอลที่ถูกต้อง; C:/
ไม่ใช่และฉันก็ค่อนข้างแน่ใจว่ามันไม่ได้มีลักษณะคล้ายกัน
C:/
ยังไม่ใช่ที่อยู่เว็บที่ถูกต้อง เบราว์เซอร์อาจสันนิษฐานว่ามันควรจะhttp://c/
มีพอร์ตว่างที่ระบุ แต่นั่นจะล้มเหลว
เบราว์เซอร์ของคุณอาจไม่ถือว่ามันอ้างถึงไฟล์ในเครื่อง มันมีเหตุผลเล็กน้อยที่จะตั้งสมมติฐานเช่นนั้นเนื่องจากไซต์สาธารณะมักจะไม่พยายามเชื่อมโยงไปยังไฟล์ในเครื่องของคนทั่วไป
ดังนั้นหากคุณต้องการเข้าถึงไฟล์ในเครื่อง: บอกให้ใช้โปรโตคอลไฟล์
ทำไมต้องสามสแลช?
เพราะมันเป็นส่วนหนึ่งของไฟล์รูปแบบ URI คุณมีตัวเลือกในการระบุโฮสต์หลังจากสองสแลชแรก หากคุณข้ามการระบุโฮสต์โฮสต์จะถือว่าคุณอ้างถึงไฟล์บนพีซีของคุณเอง วิธีนี้เป็นทางลัดสำหรับfile:///C:/etc
file://localhost/C:/etc
ไฟล์เหล่านี้จะยังคงเปิดอยู่ในเบราว์เซอร์ของคุณและเป็นสิ่งที่ดี
เบราว์เซอร์ของคุณจะตอบกลับไฟล์เหล่านี้ในลักษณะเดียวกับที่พวกเขาตอบกลับไฟล์เดียวกันทุกที่บนอินเทอร์เน็ต ไฟล์เหล่านี้จะไม่เปิดในตัวจัดการไฟล์เริ่มต้นของคุณ (เช่น MS Word หรือ VLC Media Player) และคุณจะไม่สามารถทำอะไรเช่นขอให้ File Explorer เปิดตำแหน่งของไฟล์
นี่เป็นสิ่งที่ดีอย่างยิ่งสำหรับความปลอดภัยของคุณ
ไซต์ในเบราว์เซอร์ของคุณไม่สามารถโต้ตอบกับระบบปฏิบัติการของคุณได้เป็นอย่างดี หากเว็บไซต์ที่ดีสามารถบอกได้ว่าเครื่องของคุณจะเปิดlecture.mp4ในVLC.exeเว็บไซต์ที่เป็นอันตรายอาจบอกให้เปิดvirus.batในCMD.exe หรืออาจบอกให้เครื่องของคุณเรียกใช้ไฟล์Uninstall.exeสองสามไฟล์หรือเปิด File Explorer เป็นล้านครั้ง
สิ่งนี้อาจไม่สะดวกสำหรับคุณ แต่ความปลอดภัยของ HTML และเบราว์เซอร์ไม่ได้ออกแบบมาสำหรับสิ่งที่คุณทำ หากคุณต้องการเปิดlecture.mp4ในVLC.exe ให้ลองเขียนแอปพลิเคชันเดสก์ท็อปแทน