2012-03-15 32 views

Respuesta

6

Un método de muestreo que utilizo para descargar el archivo de mi servicio 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

Muchas gracias! Trabajaré con esto. – fiberOptics

+11

¿Alguna razón por la que no devuelve FileStream directamente? Y si realmente quiere copiar la transmisión, .Net4 tiene un método CopyTo en las transmisiones. –

+1

Probablemente ya no sea relevante, pero devolver FileStream directamente podría causar problemas con el archivo no cerrado. – steavy

Cuestiones relacionadas