2011-10-05 8 views
5

मेरे नियंत्रक कार्यों में से एक उपयोगकर्ता को एक फाइल देता है। मैं फ़ाइल प्रकार के बावजूद उपयोगकर्ता को डाउनलोड (ओपन/सेव) संवाद के साथ प्रस्तुत करना चाहता हूं। यह ठीक काम करता है जब फ़ाइल प्रकार, .doc है .docx, .xlsx, आदि .., लेकिन जब फ़ाइल .txt, .xps, .pdf (कभी कभी), या .html है, यह ब्राउज़र में खुलता है।एएसपीनेट एमवीसी फाइलकंटेंट रीसेट - ब्राउजर में खुलने से रोकें

क्या कोई तरीका है कि मैं ब्राउज़र में ब्राउज़र खोलने से रोक सकता हूं, और केवल उपयोगकर्ता को वर्तमान पृष्ठ से दूर बिना किसी अलग विंडो में इसे खोलने की अनुमति देता हूं?

फ़ाइल के लिए अनुरोध jQuery के $.ajax({}) का उपयोग करके किया गया है।

संबंधित: ब्राउजर अनुरोध को संभालता है और फ़ाइल की सहमति प्राप्त करने वाले AJAX कॉल के विपरीत पॉपअप को this ansewr द्वारा समझाया जाता है, लेकिन यह प्रश्न ब्राउज़र को फ़ाइल को संभालने के लिए मजबूर करता है एक बार यह प्राप्त होने के बाद एक निश्चित तरीका है।

उत्तर

5

मुझे नहीं लगता कि आप क्लाइंट-साइड कमांड या सेटिंग के साथ ऐसा कर सकते हैं। आपको सर्वर पर कुछ करने की आवश्यकता होगी ताकि यह प्रत्येक फ़ाइल के लिए सामग्री प्रकार application/octet-stream लौटा दे। अन्यथा, ब्राउज़र आने वाली फ़ाइल को देखेगा और तय करेगा कि इसके अपने नियमों और क्षमताओं के आधार पर इसके साथ क्या किया जाए।

आप अपने सर्वर पर ऐसा कर सकते हैं, तो "attachment; filename=whatever.xyz"

+0

इस रूप में 'आवेदन/unknown' है, जो, दुर्भाग्य से, कुछ मैं से बचने के लिए कोशिश कर रहा हूँ है एक ही परिणाम पैदावार के लिए "Content-Disposition" हैडर सेट करके देखें। उपयोगकर्ता सुविधा के लिए उन्हें एक क्लिक के साथ फ़ाइल खोलने की अनुमति देना सर्वोत्तम होगा (बस वर्तमान ब्राउज़र विंडो में नहीं)। – yoozer8

+0

यदि आप इसे अपने सर्वर पर कर सकते हैं, तो "सामग्री-विस्थापन" शीर्षलेख को "अनुलग्नक; फ़ाइल नाम = जो भी। Xyz" – Ray

+0

पर सेट करने का प्रयास करें। धन्यवाद। – yoozer8

संबंधित मुद्दे