2008-10-09 19 views
16

Tôi cần truyền một tập tin đến Response để lưu trên máy của người dùng cuối. Tệp này là văn bản thuần túy, vì vậy tôi có thể sử dụng loại nội dung nào để ngăn văn bản hiển thị trong trình duyệt?Loại nội dung nào buộc tải xuống phản hồi văn bản?

+0

liên quan: [Tôi có cần Content-Type: application/octet-stream cho tập tin tải xuống? ] (http://stackoverflow.com/q/20508788/95735) –

Trả lời

21

Để được ở bên an toàn và đảm bảo hành vi nhất quán trong tất cả các trình duyệt, nó thường là tốt hơn để sử dụng cả hai:

Content-Type: application/octet-stream 
Content-Disposition: attachment;filename=\"My Text File.txt\" 
+4

Bạn chỉ cần bố trí nội dung, theo cách đó bạn có thể giữ một loại nội dung có liên quan, như văn bản/đồng bằng hoặc bất kỳ thứ gì. –

+1

@MattConnolly Bạn đề xuất ở đâu để * giữ một loại nội dung có liên quan * nếu bạn không sử dụng tiêu đề 'Content-Type'? –

+1

Câu trả lời sai - xem http://stackoverflow.com/q/20508788/95735 –

6

Tôi không nghĩ rằng nó hoạt động theo cách đó.

Sử dụng tiêu đề Content-Disposition: attachment nhưng gắn với Loại nội dung chính xác.

+0

Chỉ gửi 'Content-Type: application/octet-stream' khi User-Agent là Internet Explorer 6 ... –

23

Trong hầu hết các trường hợp, sau đây nên làm việc:

Content-type: application/octet-stream 
Content-Disposition: attachment; filename="myfile.txt" 

Có một số trường hợp biên của các trình duyệt vẫn sẽ hiển thị nó như là một tập tin văn bản, nhưng không ai trong số các trình duyệt chính sẽ (Tôi đang nói về các trình duyệt được nhúng trong một số MID).


EDIT: Khi câu trả lời này đã được công bố ban đầu, gửi Mime-Type application/octet-stream là cách đáng tin cậy duy nhất để kích hoạt quá trình tải một số trình duyệt. Bây giờ trong năm 2016, nếu bạn không cần phải hỗ trợ trình duyệt cũ, bạn có thể chỉ định đúng loại mime thích hợp.

+0

Bạn có cần nói dối về nội dung -kiểu? Sẽ đẹp hơn nếu bạn chỉ có thể sử dụng Content-Disposition, cái nào/nên/làm việc. –

+0

Theo kinh nghiệm của tôi, ứng dụng/octet-stream làm cho nó hoạt động đáng tin cậy hơn trên tất cả các trình duyệt. – ceejayoz

+0

^Những gì anh ta nói. Internet Explorer 6 có thể vẫn hiển thị dưới dạng văn bản nếu văn bản/đồng bằng được sử dụng. –

Các vấn đề liên quan