/ / कैसे मैं एक asp.net mvc कार्रवाई लगातार ब्राउज़र में एक फ़ाइल देने के लिए प्राप्त कर सकते हैं? - asp.net, asp.net-mvc

ब्राउज़र में फ़ाइल को लगातार वितरित करने के लिए मैं एएसपीनेट एमवीसी कार्रवाई कैसे प्राप्त कर सकता हूं? - asp.net, asp.net-mvc

मैं एन्क्रिप्टेड पीडीएफ फाइल पथ लेने के लिए एक छोटी सी कार्रवाई का निर्माण कर रहा हूं, इसे डिक्रिप्ट कर रहा हूं, और परिणामी पीडीएफ को ब्राउज़र में वितरित कर सकता हूं।

मेरा कोड क्रोम और फ़ायरफ़ॉक्स में 100% समय काम करता है, लेकिन यह IE9 में केवल 50% समय काम करता है।

जब मैं IE9 में लिंक का पालन करता हूं, तो ऐसा लगता है कि यह ब्राउज़र विंडो में एडोब रीडर प्लगइन खोलता है, लेकिन जब तक मैं ताज़ा नहीं करता, तब तक कोई फ़ाइल प्रदर्शित नहीं होती है।

मेरा कोड यहाँ है:

    [CheckSubscriber]
public ActionResult file(string path)
{
string mappedPath = Server.MapPath(
EncryptDecrypt.Decrypt(path,
EncString));

return base.File(mappedPath, "application/pdf");

}

IE9 में लगातार काम करने के लिए मुझे यह कैसे मिलेगा?

मैं यहाँ सिर्फ जोर से सोच रहा हूँ, लेकिन शायद मैं गलत माइम प्रकार का उपयोग कर रहा हूँ?

उत्तर:

उत्तर № 1 के लिए 4

आपको स्पष्ट रूप से सेटिंग करनी चाहिए

Content-Disposition: inline; filename="foo.pdf"

The सामग्री-स्वभाव सर्वर से प्रतिक्रिया लौटाते समय एक महत्वपूर्ण प्रतिक्रिया हेडर है।यदि इसे माइम प्रकार के साथ निर्दिष्ट किया जाता है तो सभी ब्राउज़र फ़ाइल 100% समय का सही पता लगाएंगे।

आप यह सुनिश्चित करने के लिए सारंगी का उपयोग कर सकते हैं कि प्रतिक्रिया हेडर व्यवस्थित हैं।

संपादित करें

आप ऐसा करने के लिए अपनी कार्रवाई के लिए "एक्शनरिजल्ट" रिटर्न प्रकार का उपयोग नहीं कर सकते हैं।

आपको "फाइलपाथरिजल्ट" या "फाइलस्ट्रीमरिजल्ट" का उपयोग करने की आवश्यकता है, जिनमें से दोनों System.Web.MVC नामस्थान स्थान में पाए जा सकते हैं।

वैकल्पिक रूप से आप एक बना सकते हैं कस्टम एक्शन रिटर्न टाइप और इस कार्रवाई के लिए इसका उपयोग करें। मैंने जो लेख प्रदान किया है वह कोड के साथ कदम से कदम मिलाकर देता है कि ऐसा करने के बारे में कैसे जाना है।


जवाब के लिए 0 № 2

मैं सारंगी का उपयोग करने के लिए अनुरोध के बीच अंतर देख/प्रतिक्रिया है कि ब्राउज़र भेज/प्राप्त करते है और अगर आप इसे वहां से हाजिर कर सकते है देखते हैं ।


जवाब के लिए 0 № 3

यहां "मैं एक्सेल फ़ाइल कैसे लौटाता हूं और #40 पीडीएफ एक ही और #41 होना चाहिए;:

    public FileResult DownloadErrors(string filename)
{
var file = System.IO.File.ReadAllText(filename);

return File(new System.Text.UTF8Encoding().GetBytes(file), "application/ms-excel", "Errors.csv");
}

एक्शनरिजल्ट के बजाय फाइलरिजल्ट का उपयोग करना सुनिश्चित करें।