"Farklı kaydet" iletişim kutusunu zorlamadan yanıt dosya adı nasıl ayarlanır?


119

Bazı yanıtlarda uygun content-typebaşlığı ayarlayarak bir akış döndürüyorum . Aradığım davranış şudur:

  • Tarayıcı, verilen içerik türünün içeriğini oluşturabiliyorsa, tarayıcı penceresinde görüntülemesi gerekir.

  • Tarayıcı içeriği nasıl işleyeceğini bilmiyorsa, dosya adının yanıtta verilen ad olması gereken "farklı kaydet" iletişim kutusunu görüntülemelidir.

Sorun şu ki, Content-Dispositionbaşlığı şu şekilde ayarlarsam :

"ek; dosyaadı =" dosyam.txt ""

tarayıcı her zaman "farklı kaydet" iletişim kutusunu görüntüler.

Ayarlamazsam Content-Disposition, "farklı kaydet" iletişim kutusunda kullanılan dosya adı benim durumumda çalışmayan URL'deki addır.

Ayrıca ayar denedik Content-Dispositioniçin inlineancak sonuç aynıdır.

Yanıtlar:


170

Doğru yol şunlar olabilir:

Content-Disposition: inline; filename="myfile.txt"


7
Bu cevabı yazarken 'geniş çapta desteklenmiyor' ile neyi kastettiğinden emin değilim ve FUD yerine somut gerçekler vermeyi diliyorum. IE 6, IE 8, modern Chrome ve modern Firefox'ta test ettim ve hepsinde çalışıyor; Anladığım kadarıyla bugünlerde bunu kullanmak tamamen güvenli.
Mark Amery

FireFox 37.0.2 ve Internet Explorer 11.0.18 ile çalışmıyor. Farklı kaydet iletişim kutusu karşıma çıkıyor. Chrome yine de çalışıyor.
angularsen

3
Aslında hem Firefox 37.0.2 hem de IE 11.0.18'de çalışıyor (yeni test edildi). Muhtemelen tarayıcınızın satır içi olarak görüntüleyemediği bir İçerik Türü kullanıyorsunuz.
Patonza

1
Stackoverflow.com/questions/93551/… adresinde çeşitli tartışmaların da ele aldığı birkaç not - dosya adınızda boşluklar varsa, dosya "adınızın etrafında çift ​​tırnak işareti ( ) bulundurmanız gerekir. Dosya adınızda ASCII olmayan karakterler varsa, ne yapmanız gerektiğine dair bir tartışma için diğer soruyu görmelisiniz.
Christopher Schultz

IE11.0.96'da PDF için çalışmıyor. Sürpriz değil, Chrome gayet iyi çalışıyor.
user1566694

2

Varsayılan olarak bunun mümkün olup olmadığından emin değilim. Güvenlik kaygıları nedeniyle, tarayıcılar işleyebildikleri tüm içerik türlerini değil, yalnızca birkaçını gönderiyor Accept-Encoding, bu da senaryonuza pek yardımcı olmuyor.

Belki kullanıcınıza neyi tercih ettiğini sorabilir ve bu bilgiyi profillerinde saklayabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.