2012-03-15 11 views
5

यदि Upload file using rest via stream पर कोई तरीका है तो "Download" के लिए भी होगा? यदि हाँ, क्या आप कृपया मुझे बता सकते हैं कि कैसे? अग्रिम में धन्यवाद!डब्ल्यूसीएफ रेस्ट सेवा का उपयोग कर फ़ाइल डाउनलोड करें?

उत्तर

6

एक नमूना विधि मैं अपने बाकी सेवा से फ़ाइल डाउनलोड करने का उपयोग करें:

[WebGet(UriTemplate = "file/{id}")] 
     public Stream GetPdfFile(string id) 
     { 
      WebOperationContext.Current.OutgoingResponse.ContentType = "application/txt"; 
      FileStream f = new FileStream("C:\\Test.txt", FileMode.Open); 
      int length = (int)f.Length; 
      WebOperationContext.Current.OutgoingResponse.ContentLength = length; 
      byte[] buffer = new byte[length]; 
      int sum = 0; 
      int count; 
      while((count = f.Read(buffer, sum , length - sum)) > 0) 
      { 
       sum += count; 
      } 
      f.Close(); 
      return new MemoryStream(buffer); 
     } 
+0

धन्यवाद एक बहुत! मैं इसके साथ काम करूँगा। – fiberOptics

+11

कोई कारण नहीं है कि आप सीधे FileStream वापस नहीं करते हैं? और यदि आप वास्तव में स्ट्रीम की प्रतिलिपि बनाना चाहते हैं, तो .Net4 में स्ट्रीम पर एक CopyTo विधि है। –

+1

शायद अब प्रासंगिक नहीं है, लेकिन सीधे फ़ाइलस्ट्रीम लौटने से अनजान फ़ाइल में समस्याएं हो सकती हैं। – steavy

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