भेजा जा रहा है एक वेब api विधि में मैं एक फ़ाइल पैदा करने और उसके बाद तोवेब एपीआई - कैसे पता लगाने के लिए जब एक प्रतिक्रिया
public async Task<HttpResponseMessage> GetFile() {
FileInfo file = generateFile();
var msg = Request.CreateResponse(HttpStatusCode.OK);
msg.Content = new StreamContent(file.OpenRead());
msg.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
msg.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") {FileName = file.Name};
return msg;
}
तरह जवाबी कार्रवाई के लिए यह स्ट्रीमिंग रहा हूँ क्योंकि यह एक उत्पन्न फ़ाइल मैं चाहता हूँ समाप्त हो गया है प्रतिक्रिया समाप्त होने के बाद इसे हटाएं लेकिन मुझे इसके लिए पाइपलाइन में एक हुक नहीं लग रहा है।
मुझे लगता है कि मैं एक स्थिर में फ़ाइल का संदर्भ डाल सकता हूं और एक कस्टम संदेश हैडलर स्थापित कर सकता हूं जो इस स्थिर स्थिर चर और हटाए गए मूल्यों से मूल्य खींचता है। हालांकि, ऐसा लगता है कि यह स्थैतिक उपयोग के कारण संभवतः दोनों सही नहीं हो सकता है (जब यह सभी प्रति अनुरोध होना चाहिए) और क्योंकि मुझे एक अलग मार्ग पंजीकृत करना होगा।
मैंने this question देखा है, लेकिन ऐसा लगता है कि वास्तव में बहुत उपयोगी प्रतिक्रिया नहीं है।
धन्यवाद किरण, मैं इस तरह कुछ सजावट पैटर्न के साथ ऐसा करने की कोशिश कर रहा था और अपने बालों को खींच रहा था क्योंकि मैं सिर्फ प्रकाशनों को ओवरराइड नहीं कर सका। उस नोट पर (और जब से आप वेब एपी पर काम करते हैं) किसी भी मौके पर हम भविष्य में इंटरफेस पर आधारित एचटीपीकंटेंट प्राप्त कर सकते हैं? –
और हाँ, मैं एक पीडीएफ उत्पन्न कर रहा हूं, लेकिन इसे phantomjs के लिए खोलकर कर रहा हूं, इसलिए फ़ाइल मेरा मूल इंटरचेंज प्रारूप है, दुर्भाग्यवश 'स्ट्रीम' –