none
Realizar upload de ficheros en un Servicio Web RRS feed

  • Pregunta

  • Hola chicos, estoy empezando con el tema este de los Servicios Web y la verdad es que la primera en la frente, necesito realizar un Servicio Web al que le pueda pasar un fichero, sea del tamaño quesea, lo particione y lo guarde.

    espero que me podáis echar un cable.

    Un saludo

    martes, 19 de diciembre de 2006 9:38

Respuestas

  • Así a bote pronto se me ocurre lo siguiente:

    Te creas un servicio web y le añades este método:

    [WebMethod]

    public void CrearFichero(byte [] bytes, string filename)

    {

    using (System.IO.FileStream fileOut = new System.IO.FileStream(Server.MapPath("~") + @"\" + filename, System.IO.FileMode.CreateNew))

    {

    fileOut.Write(bytes, 0, bytes.Length);

    }

    }

    Y en el cliente (en mi caso una aplicación de consola) agregas una referencia web a tu proyecto:

    Ficheros.Service1 ficheros = new Ficheros.Service1();

    System.IO.FileStream fileIn = new System.IO.FileStream(@"C:\TEMP\archivo.txt", System.IO.FileMode.Open);

    byte [] bytes = new byte[fileIn.Length];

    fileIn.Read(bytes, 0, (int)fileIn.Length);

    ficheros.CrearFichero(bytes, "prueba.txt");

    Vas a la carpeta del inetpub\wwwroot\nombredetuaplicacion y tendras un fichero de texto llamada prueba.txt

    Salu2.

     

    martes, 19 de diciembre de 2006 11:22

Todas las respuestas

  • Así a bote pronto se me ocurre lo siguiente:

    Te creas un servicio web y le añades este método:

    [WebMethod]

    public void CrearFichero(byte [] bytes, string filename)

    {

    using (System.IO.FileStream fileOut = new System.IO.FileStream(Server.MapPath("~") + @"\" + filename, System.IO.FileMode.CreateNew))

    {

    fileOut.Write(bytes, 0, bytes.Length);

    }

    }

    Y en el cliente (en mi caso una aplicación de consola) agregas una referencia web a tu proyecto:

    Ficheros.Service1 ficheros = new Ficheros.Service1();

    System.IO.FileStream fileIn = new System.IO.FileStream(@"C:\TEMP\archivo.txt", System.IO.FileMode.Open);

    byte [] bytes = new byte[fileIn.Length];

    fileIn.Read(bytes, 0, (int)fileIn.Length);

    ficheros.CrearFichero(bytes, "prueba.txt");

    Vas a la carpeta del inetpub\wwwroot\nombredetuaplicacion y tendras un fichero de texto llamada prueba.txt

    Salu2.

     

    martes, 19 de diciembre de 2006 11:22
  • Hola Ajuncosa,

    mira si te sirve de idea...

      [WebMethod]

            public StreamReader MiArchivo()

            {

                using (StreamReader MiLector = File.Open("Doc.xml"))

                return MiLector;

            }

    no olvides el using System.IO; te pidos excusas por no poderlo probar y por no ser demasiado experto en WS. no estoy seguro pero "a lo mejor estoy aconsejandote una barbaridad!".
    Espero que alguno de los expertos en WS, nos den su opinion.

    Saludos,
    Pep Lluis;

     

     

    martes, 19 de diciembre de 2006 11:41
  • Muchas gracias por la contestación, al final lo he encontrado, más o menos como lo quería hacer, como siempre lo que se encuentra en internet te da una idea de como hacerlo, luego te toca a tí el papel de pegarte con la solución correcta

    martes, 19 de diciembre de 2006 15:06

  • Disculpas!!... lo entendi al reves. Supongo que cosas de la edad.
    martes, 19 de diciembre de 2006 17:04