2010-07-24 13 views

Respuesta

6

No hay una sola "mejor" manera. Si hubiera, entonces probablemente habría una sola manera. Realmente depende de su situación, necesidades y prioridades.

Dicho esto, utilizo la codificación Base64 cada vez que puedo porque es divertido y ¡fácil! :)

+2

esta respuesta me hizo jajaja. – tster

1

he implementado recientemente, utilizando un servicio WCF y optó por utilizar byte [] como el método de transportar el archivo, ya que era bastante fácil de implementar:

public byte[] DownloadFile(string fileName) 
{ 
    var stream = System.IO.File.OpenRead(fileName); 

    byte[] fileContent = new byte[stream.Length]; 
    stream.Read(fileContent, 0, fileContent.Length); 

    return fileContent; 
} 

El ejemplo anterior es simplificada, ya que no estaba pasando un nombre de archivo directamente al servicio WCF, pero estoy seguro que usted consigue la idea general =)

2

En WCF puede devolver un objeto Stream de un método:

public Stream GetImage(string name) 
{ ... } 

Si tiene un protocolo basado en SOAP puro, tendrá que apegarse a primitivas como byte []. Esta es una opción de bajo rendimiento pero realmente no hay una mejor manera. Es posible que deba segmentar el archivo en varias partes para que funcione para todos los clientes. Algunos clientes de SOAP no permitirán respuestas grandes, por lo que solíamos dividir la respuesta en 30 mil piezas.

La mejor manera de transferir la imagen es no utilizar cualquiera de los enfoques anteriores, en lugar de realizar una solicitud HTTP directamente a la imagen y evitar todo esto. Esto es lo que usamos ahora, sin codificación, sin procesamiento del cliente, transmitido directamente al disco. Tendrá que examinar su caso de uso específico para determinar si esto se puede aplicar.

0

También puede devolver solo la URL a la imagen y luego dejar que el cliente realice una llamada HTTP sin formato a la URL devuelta para recuperar la imagen.

Gracias
VM

+0

no si se trata de transferir la imagen a otro servidor/servicio – BerggreenDK

Cuestiones relacionadas