"फ़ाइल के रूप में सहेजें" को मजबूर किए बिना प्रतिक्रिया फ़ाइल नाम कैसे सेट करें


122

मैं उपयुक्त content-typeहेडर को सेट करके कुछ प्रतिक्रिया में एक स्ट्रीम लौटा रहा हूं । जिस व्यवहार की मुझे तलाश है वह यह है:

  • यदि ब्राउज़र दी गई सामग्री प्रकार की सामग्री को प्रस्तुत करने में सक्षम है तो उसे ब्राउज़र विंडो में प्रदर्शित करना चाहिए।

  • यदि ब्राउज़र को पता नहीं है कि सामग्री को कैसे प्रस्तुत करना है, तो उसे "सेव एज़" डायलॉग प्रदर्शित करना चाहिए जहाँ फ़ाइलनाम प्रतिक्रिया में प्रदान किया जाना चाहिए।

समस्या यह है कि अगर मैंने Content-Dispositionशीर्ष लेख को इसके साथ सेट किया है:

"अनुलग्नक; फ़ाइल नाम =" myfile.txt ""

ब्राउज़र हमेशा "सेव एज़" डायलॉग प्रदर्शित करेगा।

अगर मैं सेट नहीं करता हूं Content-Disposition, तो "save as" डायलॉग में उपयोग किया जाने वाला फ़ाइल नाम URL में एक है जो मेरे मामले में काम नहीं करता है।

मैंने सेटिंग Content-Dispositionकरने की भी कोशिश की inlineलेकिन नतीजा वही है।

जवाबों:


173

सही तरीका हो सकता है:

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


7
मुझे यकीन नहीं है कि जब आप इस उत्तर को लिखते हैं, तो आप 'व्यापक रूप से समर्थित नहीं' से क्या मतलब रखते हैं, और चाहते हैं कि आप FUD के बजाय कठिन तथ्य दें। मैंने अभी IE 6, IE 8, आधुनिक क्रोम और आधुनिक फ़ायरफ़ॉक्स में परीक्षण किया है, और यह उन सभी में काम करता है; जहाँ तक मैं बता सकता हूँ, आजकल इसका उपयोग करना पूरी तरह से सुरक्षित है।
मार्क अमेरी

मेरे फ़ायरफ़ॉक्स 37.0.2 और इंटरनेट एक्सप्लोरर 11.0.18 के साथ काम नहीं करता है। मैं संवाद के रूप में सहेजें के साथ प्रस्तुत किया गया हूं। क्रोम हालांकि काम करता है।
कोणीय काल

3
वास्तव में यह फ़ायरफ़ॉक्स 37.0.2 और IE 11.0.18 (बस परीक्षण) दोनों में काम करता है। आप शायद एक सामग्री-प्रकार का उपयोग कर रहे हैं जिसे आपका ब्राउज़र इनलाइन प्रदर्शित नहीं कर सकता है।
पाटनजा

1
कुछ नोट्स भी अधिक विभिन्न चर्चाओं के अंतर्गत आने वाले stackoverflow.com/questions/93551/... - अगर आप अपने नाम में रिक्त स्थान है, तो आप दोहरे उद्धरण चिह्नों के लिए (की जरूरत है ") अपने फ़ाइल नाम के आसपास। यदि आपके फ़ाइल नाम में गैर-ASCII वर्ण हैं, तो आपको यह देखना चाहिए कि क्या करना है की चर्चा के लिए अन्य प्रश्न।
क्रिस्टोफर शुल्त्स 18

IE11.0.96 में पीडीएफ के लिए काम नहीं कर रहा है। कोई आश्चर्य की बात नहीं, क्रोम ठीक काम करता है।
user1566694

2

मुझे यकीन नहीं है कि डिफ़ॉल्ट रूप से संभव है। सुरक्षा चिंताओं के कारण, ब्राउज़र वे सभी सामग्री-प्रकार नहीं भेज सकते हैं Accept-Encodingजिन्हें वे संभाल सकते हैं, लेकिन बस कुछ ही , जो आपके परिदृश्य में बहुत मदद नहीं करते हैं।

हो सकता है कि आप अपने उपयोगकर्ता से पूछ सकें कि वे क्या पसंद करते हैं और उस जानकारी को अपने प्रोफ़ाइल में संग्रहीत करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.