บังคับให้ลิงก์ไฟล์เปิดเป็นตัวอย่างในแท็บ [ใหม่] (แทนที่จะดาวน์โหลด)


12

บางครั้งคุณต้องการติดตามลิงก์ pdf / image / etc และเห็นจริงในเบราว์เซอร์แทนที่จะดาวน์โหลด
ในการรันล่าสุดของฉันมันเป็นภาพหน้าจอบนเซิร์ฟเวอร์Mantis ที่ฉันใช้

เมื่อฉันคลิกเพื่อติดตามลิงก์มันจะแจ้งให้ฉันบันทึกไฟล์ทันทีโดยไม่มีตัวเลือกให้เปิดเบราว์เซอร์
ฉันไม่ต้องการดาวน์โหลดเปิดในโปรแกรมดูรูปภาพแล้วอย่าลืมลบไฟล์เมื่อฉันทำเสร็จแล้ว ฉันต้องการที่จะได้รับการจัดการโดยเบราว์เซอร์เมื่อฉันปิดแท็บสำหรับภาพปกติ / ไฟล์ PDF open [image] in new tabเช่นเมื่อคุณคลิก

ฉันรู้ว่าสาเหตุที่เบราว์เซอร์กำลังทำอยู่เนื้อหากำลังแสดงพร้อมกับส่วนหัว HTTP Content-Disposition:attachmentแต่ฉันแน่ใจว่าจะมีการตั้งค่าขั้นสูงตัวเลือกเมนูบริบทที่ซ่อนอยู่หรือส่วนขยายที่ยอดเยี่ยมที่จะให้คุณดูบางสิ่งที่บางคนต้องการ เพื่อบันทึกจริง

ไม่มีใครรู้อะไรแบบนั้น?


แก้ไข

ดูเหมือนว่า Firefox จะมีส่วนเสริมแต่ฉันหาพอร์ตสำหรับ Chrome ไม่พบ


นี่คือแหล่งที่มาของบทความ: support.google.com/chrome/answer/1060734คุณอาจปิด Chrome Reader และ Adobe Reader เป็นค่าเริ่มต้นหรือไม่
Darius

อย่างนี้ไม่ได้เป็นเพียงเกี่ยวกับpdf's และฉันแน่ใจContent-Dispositionว่ามันทับ (ซึ่งถูกกำหนดโดยเซิร์ฟเวอร์ไม่ใช่การตั้งค่าของผู้ใช้)
Hashbrown

3
เพิ่งเห็นสิ่งนี้ .. และอาจจะซ้ำกัน? -> superuser.com/questions/199382/… - (คำตอบนั้นหมายถึงการใช้ส่วนขยาย Chrome 'redirector' ( chrome.google.com/webstore/detail/redirector/?hl=th ) เพื่อลบหัวข้อการจัดการเนื้อหา
Darius

ได้รับคำตอบที่นี่ก่อนstackoverflow.com/questions/6293893/…
Vasko

@Vasko ไม่ได้ตอบทั้งหมดนั้นหมายถึงสิ่งที่ผู้ดูแลเว็บสามารถทำได้เพื่อให้แน่ใจว่าผู้ใช้ที่มีเบราว์เซอร์ของพวกเขาดาวน์โหลดไฟล์โดยค่าเริ่มต้น คำถามของฉันคือในฐานะผู้ใช้ที่ไม่มีการควบคุมวิธีการโฮสต์เนื้อหาเราจะบังคับใช้สิ่งที่ตรงกันข้ามได้อย่างไร
Hashbrown

คำตอบ:


3

ใครเป็นผู้กำหนดว่าไฟล์จะถูกดาวน์โหลดหรือเปิดเป็นผู้พัฒนาเว็บไซต์หรือไม่ โดยปกติไฟล์จะถูกเปิดในเบราว์เซอร์ แต่หากนักพัฒนาบังคับให้ส่วนหัว HTML ด้านล่างจะถูกดาวน์โหลดเสมอ

ไม่มีทางที่จะบังคับ :(

Response.AddHeader("Content-Disposition", "attachment; filename=fileToForceDownload.pdf");
Response.AddHeader("Content-Length", 12345);
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(bytesOfFile);

ในการเปิดเบราว์เซอร์ผู้พัฒนาจะต้องประกาศ:

Response.AddHeader("Content-Disposition", "inline; filename=fileToOpen.pdf");
Response.ContentType = "application/pdf";

ข้างต้นถูกเขียนใน C # แต่พารามิเตอร์ของมันเป็นเรื่องธรรมดาไปยังเว็บไซต์ภาษาใด ๆ


ปัญหาเกี่ยวกับ Android: stackoverflow.com/questions/4674737/…
Kiquenet

Android 4 Ice Cream Sandwich ตัวอย่าง: Content-Disposition: attachment; filename="MyFileName.ZIP";จะทำงานไม่ถูกต้องเนื่องจากมีเครื่องหมายอัฒภาคอยู่ท้าย การทดสอบใด ๆ (และสรุป ) สำหรับ Android ทุกรุ่น? มีประโยชน์: stackoverflow.com/questions/6319389/… Google Chrome v12 release introduced a bug that triggers the problem you describe. You can fix it by sending the Content-Length header bugs.chromium.org/p/chromium/issues/detail?id=85549
Kiquenet

นั่นไม่จริงเลยแม้แต่ในคำถามของฉันฉันพูดถึงว่ามีส่วนเสริมของ Firefox ที่ทำงานได้และ Darius ได้โพสต์ความคิดเห็นที่ใช้งานได้กับโครเมี่ยม คำถามถามหาโซลูชันลูกค้าโดยเฉพาะและแม้แต่บอกว่าการแก้ไขฝั่งเซิร์ฟเวอร์เป็นที่รู้จักกันแล้ว แต่ไม่เหมาะสมในกรณีนี้ดังนั้นการพักที่นี่จึงไม่ได้ช่วยเรา (ฉันได้รับการโหวตสำหรับคำถามเมื่อเร็ว ๆ นี้และฉันมักจะกลับไปและตรวจสอบคำตอบหากคุณสงสัยว่าทำไมความคิดเห็นนี้ออกมาไม่กี่ปีต่อมาฉันแค่อยากจะบอกให้คุณรู้ว่าทำไมคุณไม่ได้รับ เห็บ)
Hashbrown

0

คุณลองค้นหาคำว่า "open PDF in Chrome" หรือไม่?

ฉันมีส่วนขยายที่ทำงานได้ดี:

Kami (formerly Notable PDF)
2.0.6344
Document Viewer and Office Tool for your browser

อย่างไรก็ตามฉันปิดการใช้งานเพราะ PDF จะเปิดใน Chrome แม้ว่าจะไม่มีนามสกุลก็ตาม

ฉันจะมี:

Office Editing for Docs, Sheets & Slides
109.1486.1491
View and edit Microsoft Word, Excel, and PowerPoint files...

สิ่งนี้ทำให้ฉันสามารถเปิดไฟล์ Office ส่วนใหญ่โดยไม่ต้องมี Office (ดูได้เลยไม่มี Office)

หวังว่านี่จะช่วยได้


you want to follow a pdf/image/etc linkคำถามนี้ไม่มีส่วนเกี่ยวข้องกับไฟล์ pdf โดยเฉพาะ
Hashbrown

0

ดังกล่าวโดย Sergio มันเป็นผู้พัฒนาเว็บไซต์ที่กำหนดว่าไฟล์จะได้รับการดาวน์โหลดหรือเปิดในเบราว์เซอร์ หากคุณต้องการดูเอกสาร PDF ฉันแนะนำให้เปิดใช้งานส่วนขยายของ Google เอกสารซึ่งมาพร้อมกับโครมโดยค่าเริ่มต้น กดปุ่มctrlในขณะที่คุณคลิกที่ภาพมันจะเปิดภาพในแท็บใหม่ ฉันหวังว่านี่จะใช้งานได้สำหรับผู้ใช้ที่มีปัญหานี้


กำหนดแน่นอน แต่เรากำลังมองหาวิธีแก้ไขปัญหาซึ่งเป็นไปไม่ได้ ctrl + click จะใช้ได้ก็ต่อเมื่อdispositionไม่ได้ตั้งค่าเป็นattachmentซึ่งระบุไว้ในคำถาม (คำตอบ 'คำตอบ' นี้จะเหมาะกับความคิดเห็นด้วย)
Hashbrown
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.