2012-03-15 11 views

risposta

6

Metodo di campionamento che uso per scaricare il file dal mio servizio REST:

[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

Grazie mille! Lavorerò con questo. – fiberOptics

+11

Qualsiasi motivo per cui non si restituisce direttamente FileStream? E se vuoi davvero copiare lo stream, .Net4 ha un metodo CopyTo sugli stream. –

+1

Probabilmente non è più rilevante, ma restituire direttamente FileStream potrebbe causare problemi con file non chiusi. – steavy

Problemi correlati