2014-05-02 5 views
8

पर वेब एपीआई के माध्यम से फ़ाइल स्ट्रीमिंग अपलोड मूल रूप से मैं एक वेब एपीआई में एक फाइल स्ट्रीम करना चाहता हूं और एक बार वेब एपीआई नियंत्रक के अंदर मैं डेटा पास करना चाहता हूं क्योंकि यह स्ट्रीम रीडर के माध्यम से निम्न स्तर तर्क में आता है। मैं नीचे दूसरे से मिला तो कुछ संशोधन के साथ पोस्ट कोड की कोशिश की, लेकिन मैं मिलता है: जबकि एक अतुल्यकालिक आपरेशन अभी भी लंबित थास्ट्रीम स्ट्रीमर

एक अतुल्यकालिक मॉड्यूल या हैंडलर पूरा किया।

public async void Put(int id, HttpRequestMessage request) 
    { 
     if (!Request.Content.IsMimeMultipartContent()) 
      throw new InvalidOperationException(); 

     var provider = new MultipartMemoryStreamProvider(); 
     await Request.Content.ReadAsMultipartAsync(provider); 

     var file = provider.Contents.First(); 
     var filename = file.Headers.ContentDisposition.FileName.Trim('\"'); 
     var buffer = await file.ReadAsByteArrayAsync(); 
     var stream = new MemoryStream(buffer); 

     using (var s = new StreamReader(stream)) 
     { 
      saveFile.Execute(id, s); 
     } 
    } 

मैं जब तक मैं डेटा स्ट्रीमिंग रहा हूँ के रूप में यह आता है अन्य समाधान के लिए खुला रहा हूँ। मैं इंतजार करने के लिए नए और async हूँ और मैं शायद एक बुनियादी गलती कर रहा हूँ। कोई विचार?

+3

मैं मैं कहना है कि पूरी फ़ाइल एक निश्चित समय पर स्मृति में है को सही कर रहा हूँ? मुझे लगता है कि यह var "बफर" में है, अगर मैं गलत नहीं हूँ। –

उत्तर

6

बदलें async voidasync Task को

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