में नियंत्रक के अंदर एक कार्रवाई में http प्रतिक्रिया में हेडर जोड़कर मैं filestream.write
का उपयोग कर डाउनलोड करने के लिए सर्वर से क्लाइंट स्ट्रीम कर रहा हूं। उस स्थिति में क्या हो रहा है कि मैं फ़ाइल डाउनलोड करने में सक्षम हूं लेकिन यह मेरे ब्राउज़र में डाउनलोड के रूप में दिखाई नहीं देता है। न तो "सेव एज़" के लिए पॉप-अप डाउनलोड अनुभाग में "डाउनलोड बार" दिखाई नहीं देता है। चारों ओर देखने से, मुझे लगता है कि ब्राउज़र को यह बताने के लिए प्रतिक्रिया हेडर में "कुछ" शामिल करने की आवश्यकता है कि इस प्रतिक्रिया के साथ अनुलग्नक है। मैं भी कुकी सेट करना चाहता हूँ।एएसपीनेट/एमवीसी
[HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=" & name)]
public ActionResult Download(string name)
{
// some more code to get data in inputstream.
using (FileStream fs = System.IO.File.OpenWrite(TargetFile))
{
byte[] buffer = new byte[SegmentSize];
int bytesRead;
while ((bytesRead = inputStream.Read(buffer, 0, SegmentSize)) > 0)
{
fs.WriteAsync(buffer, 0, bytesRead);
}
}
}
return RedirectToAction("Index");
}
मैं त्रुटि हो रही है कि: इसे पूरा करने के लिए इस मैं क्या कर रहा हूँ है। "System.web.httpcontext.current एक संपत्ति है और एक प्रकार के रूप में प्रयोग किया जाता है"
क्या मैं सही स्थान पर हेडर अपडेट कर रहा हूं? ऐसा करने के लिए कोई और रास्ता नहीं है?
मैं यह कर की कोशिश की।लेकिन यह अभी भी ब्राउज़र के डाउनलोड अनुभाग में "सेव एज़" डायलॉग बॉक्स और न ही डाउनलोड प्रोग्रेस बार दिखाएं। – ezile
यह मेरे लिए काम करता है और मुझे लगता है कि मेरे टेस्ट केस में एचटीएमएल डाउनलोड हो रहा है। आपके लिए ऐसा इसलिए हो सकता है क्योंकि आप कार्यवाही पर पुनर्निर्देशित कर रहे हैं। हालांकि मैंने इस परिदृश्य की कोशिश नहीं की है। बस कोशिश करने के लिए इंडेक्स के तहत इस हेडर को रखने का प्रयास करें। – PSL
मैं थोड़ी अधिक जानकारी दूंगा। मैं "इंडेक्स" पृष्ठ पर हूं और फिर डाउनलोड पर क्लिक करता हूं जो जावास्क्रिप्ट के माध्यम से डाउनलोड एक्शन कॉल करता है। उपरोक्त कोड डाउनलोड एक्शन में लिखा गया है। और उपयोगकर्ता को फ़ाइल स्ट्रीम करने के बाद, मैं इंडेक्स पेज पर रीडायरेक्ट करता हूं। मैं उलझन में हूं कि मुझे ब्राउजर को कब कहना चाहिए कि एक डाउनलोड है। मेरा मतलब है कि मैं FileStream.WriteSync का उपयोग कर सामान भेज रहा हूं, इसलिए मुझे लगता है कि मुझे फ़ाइल भेजने से पहले ब्राउज़र को बताना होगा कि एक अनुलग्नक है और इस प्रकार यह "के रूप में सहेजें" संवाद बॉक्स पॉप-अप करेगा। मुझे लगता है कि मैं वर्कफ़्लो में उलझन में हूं और इस प्रकार मैं कब और कहां बदल सकता हूं। – ezile