none
FileUpload en WebApi Rest C# con AngularJs RRS feed

  • Pregunta

  • Hola desarrolladores, buen día, tengo una webapi con cliente AngularJs, estoy enviando un archivo para cargarlo y efectivamente logre subirlo, solo que pasa con un nombre muy raro, por ejemplo si cargo el archivo "subir.png" este cuando llega al servidor aparece como "BodyPart_fbf663d1-e97d-4bd5-a142-0330b6f08dcd" (ese nombre super largo y sin extensión) si le pongo extensión a ese archivo loco efectivamente abre la imagen que yo subí.

    Hay forma de solucionarlo?? que llegue con el nombre del archivo?? o mejor aun, darle un nombre??

    Este es el método donde recibo el archivo en la WebApi C#

    [Authorize]
            [HttpPost]
            [Route("cargaarchivo")]
            public async Task<HttpResponseMessage> cargarchivo()
            {
                var directorio = HttpContext.Current.Server.MapPath("~/archivostemporales");
                Directory.CreateDirectory(directorio);
                
                var provider = new MultipartFormDataStreamProvider(directorio);
                
                var result = await Request.Content.ReadAsMultipartAsync(provider);
    
    
                return Request.CreateResponse(HttpStatusCode.OK, "ok");
            }

    martes, 3 de noviembre de 2015 15:22

Respuestas

  • hola

    estas seguro que es web api? no sera un controller de asp.net mvc, de que clase hereda el controller ?

    lo que no veo en ese webapi es como accedes al request para tomar los post files

     Uploading a File in ASP.Net Web API

    donde accedes al HttpContext.Current.Request para tomar los Files ?

    -----

    un detalle, porque siemre invocas al CreateDirectory() si esta carpeta puede existir? deberias validarlo usando el Directory.Exists() y sino esta la carpeta la creas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta CrissR martes, 3 de noviembre de 2015 17:12
    • Desmarcado como respuesta CrissR martes, 3 de noviembre de 2015 17:13
    • Marcado como respuesta CrissR miércoles, 4 de noviembre de 2015 0:45
    martes, 3 de noviembre de 2015 16:39
  • hola

    entiendo implementas algo como esto

    Web API File Upload, Single or Multiple files

    que oasa si armas un ejemplo simple subiendo el archivo pero sin usar angular

    solo para descartar si el tema viene de como desde el cliente subes el archivo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Karen MalagónModerator martes, 3 de noviembre de 2015 20:27
    • Marcado como respuesta CrissR miércoles, 4 de noviembre de 2015 19:26
    martes, 3 de noviembre de 2015 17:10

Todas las respuestas

  • hola

    estas seguro que es web api? no sera un controller de asp.net mvc, de que clase hereda el controller ?

    lo que no veo en ese webapi es como accedes al request para tomar los post files

     Uploading a File in ASP.Net Web API

    donde accedes al HttpContext.Current.Request para tomar los Files ?

    -----

    un detalle, porque siemre invocas al CreateDirectory() si esta carpeta puede existir? deberias validarlo usando el Directory.Exists() y sino esta la carpeta la creas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta CrissR martes, 3 de noviembre de 2015 17:12
    • Desmarcado como respuesta CrissR martes, 3 de noviembre de 2015 17:13
    • Marcado como respuesta CrissR miércoles, 4 de noviembre de 2015 0:45
    martes, 3 de noviembre de 2015 16:39
  • Hola Leandro, Gracias por Reponder, los archivos se cargan cuando pasa por la linea

    var result = await Request.Content.ReadAsMultipartAsync(provider);
    revisare el link que me envías.

    martes, 3 de noviembre de 2015 16:49
  • hola

    entiendo implementas algo como esto

    Web API File Upload, Single or Multiple files

    que oasa si armas un ejemplo simple subiendo el archivo pero sin usar angular

    solo para descartar si el tema viene de como desde el cliente subes el archivo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Karen MalagónModerator martes, 3 de noviembre de 2015 20:27
    • Marcado como respuesta CrissR miércoles, 4 de noviembre de 2015 19:26
    martes, 3 de noviembre de 2015 17:10
  • Gracias Leandro, El primer link que me enviaste me sirvió para la carga de archivos, aunque solo sube un archivo la parte multiple no me funciona, fijo con el nuevo link que me das encuentro la solución. Muchas gracias, si lo logro te cuento.
    martes, 3 de noviembre de 2015 17:14