Inicio > .Net, C#, Informática, Programación, Visual studio 2010 > Guardar o extraer archivos desde un Web service

Guardar o extraer archivos desde un Web service



Bueno pues primero explico que este método sirve para transferir cualquier archivo, si desean transferir archivos de texto pueden simplemente devolver el string que contiene el archivo.
La mejor forma de transferir volúmenes tan altos de información es a través de binary array de esta manera también logramos estandarizar nuestro webservice. para vamos al namespace System.IO y utilizamos las clases tipo binary.

public byte[] ReadFileFullname(string rootCompleted)
{
//get file
StreamReader reader = new StreamReader(@"" + rootCompleted);

BinaryReader binReader = new BinaryReader(reader.BaseStream);

//read file
byte[] binFile = binReader.ReadBytes(Convert.ToInt32(binReader.
BaseStream.Length));

//close reader
binReader.Close();
reader.Close();

return binFile;

}


como ven podemos recibir la rota física del archivo leerlo y devolverlo en forma de binary array, algo parecido seria para escribir

[WebMethod]
public string SaveFile(string ruta, string filename, byte[] info)
{
     BinaryWriter writer = new BinaryWriter(File.Open((@"" + ruta + filename),
     FileMode.OpenOrCreate,
     FileAccess.ReadWrite));

     writer.Write(info);

     writer.Close();

    return 0.ToString();

   }

Como ven es muy simple espero les sirva y si tienen dudas solo pregunten y dejen su comentario.

  1. Luz y Oscuridad
    septiembre 20, 2011 a las 10:10 pm

    Recuerda que hay un límite envío en la red, por eso la utilización de búffer de salida y otras cuestiones, el envío de un archivo con este método tiene una limitante de unos cuántos megabytes, saludos.

    • septiembre 20, 2011 a las 10:20 pm

      Si es cierto, eso es para archivo peuqeños que no pasen las 10MB es lo ideal, gracias por el comentario

  2. Marco Ramìrez
    noviembre 1, 2011 a las 5:35 pm

    Hola
    Hay algo parecido en visual basic 6.0?

    gracias

    • noviembre 1, 2011 a las 5:42 pm

      no amigo no se si existe algo para VB6.0 , busca como puedes leer weeb services en esa plataforma y listo ya la hiciste.

  3. Marco Ramirez
    noviembre 3, 2011 a las 3:46 pm

    Gracias

  4. antonio
    diciembre 16, 2011 a las 2:26 pm

    Estoy cargando un archivo por un fileupload y necesito poder serializarlo para posteriormente enviarlo al servicio para que lo almacene lo estoy haciendo en vb agradezco la colaboracion

  5. Matías Rmz.
    septiembre 27, 2013 a las 6:22 pm

    Como será la lectura de la variable byte y pasarla a un datatable o archivo?

  6. enero 31, 2014 a las 3:38 pm

    Saludos, disculpa me sale esto al momento de ejecutar “El formulario de prueba sólo está disponible para métodos con tipos primitivos como parámetros” que sería??

    • enero 31, 2014 a las 3:41 pm

      No puedes consumir el servicio directamente no lo puedes probar en el navegador debes probarlo con alguna otra aplicación que lo consuma, sea de escritorio o web.

  7. Jorge
    febrero 24, 2014 a las 1:19 am

    si necessitan enviar archivos de gran tamaño pueden dividir el total en mas pequeños digamos de unos 5 MB a medida que llegan los van uniendo en un mismo binary array y luego cuando termine lo convierten.

  8. Alejandro
    junio 10, 2014 a las 11:28 pm

    Disculpen, no soy muy familiarizado en web services o c#, pero debo realizar un trabajo, espero me puedan ayudar, debo crear un servicio web y un metodo que me permita recibir archivos .txt, desde un dispositivo android, si pueden ayudarme, con los pasos y el codigo seria de gran ayuda….logre llegar hasta el paso de hola mundo e instanciarla en una aplicacion de escritrio, pero el metodo apra recibir un archivo es el problema….muchas gracias

  9. octubre 7, 2014 a las 2:49 pm

    Hola que tal disculpa hay algo parecido pero para Java??

  10. Marco Polo
    agosto 19, 2015 a las 11:04 pm

    Tendras algun ejemplo con código, estoy tratando de implementarlo con VS 2013 pero no me funciona..

    • Marco Polo
      agosto 24, 2015 a las 5:09 pm

      Ya pude hacer que funcione, mil gracias…

  11. karen
    noviembre 26, 2015 a las 2:20 pm

    utilizo el mismo script para subir archivos a un web service, localmente me funciona, pero al publicarlo en el servidor y consumirlo desde un equipo remoto me arroja el siguiente mensaje

    Unable to connect to SQL Server database. —> A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified)

    no hago ninguna conexion a base de datos, por lo tanto, como puedo solucionar esto? ayuda!!

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: