Lado del cliente código:

<form action="api/MyAPI" method="post" enctype="multipart/form-data">     
<label for="somefile">File</label>     <input name="somefile" type="file" />     
<input type="submit" value="Submit" /> 
</form>

Y cómo el proceso de subir el archivo con mvc web api,tiene algún código de ejemplo?

InformationsquelleAutor Ray | 2012-12-06

2 Comentarios

  1. 1

    Código HTML:

    <form action="api/MyAPI" method="post" enctype="multipart/form-data">     
        <label for="somefile">File</label>     
         <input name="somefile" type="file" />     
        <input type="submit" value="Submit" /> 
        </form>

    Controlador de

             //POST api/MyAPI
            public HttpResponseMessage Post()
            {
                HttpResponseMessage result = null;
                var httpRequest = HttpContext.Current.Request;
                if (httpRequest.Files.AllKeys[0] == "image")
                {
                    if (httpRequest.Files.Count > 0)
                    {
                        var docfiles = new List<string>();
                        foreach (string file in httpRequest.Files)
                        {
                            var postedFile = httpRequest.Files[file];
                            var filePath = HttpContext.Current.Server.MapPath("~/Images/" + postedFile.FileName);
                            postedFile.SaveAs(filePath);
    
                            docfiles.Add(filePath);
                        }
                        result = Request.CreateResponse(HttpStatusCode.Created, docfiles);
    
    
                    }
                }
                else
                {
                    result = Request.CreateResponse(HttpStatusCode.BadRequest);
                }
                return result;
            }

    intentar link de abajo

    este enlace utilice para mí, espero que el trabajo que

    http://www.asp.net/web-api/overview/advanced/sending-html-form-data,-parte-2

    • gracias kleopatra,shabeer90 por tu valioso comentario
  2. 0

    Puede utilizar ApiMultipartFormFormmatter para subir el archivo a la api de web 2.
    Mediante el uso de esta biblioteca, se puede definir una vista de modelo para obtener los parámetros enviados desde el lado del cliente. Tales como:

    public class UploadFileViewModel 
    {
        public HttpFile Somefile{get;set;}
    }

    Y utilizar en su Api controlador como este:

    public IHttpActionResult Upload(UploadFileViewModel info)
    {
        if (info == null)
        {
            info = new UploadFileViewModel();
            Validate(info);
        }
    
        if (!ModelState.IsValid)
            return BadRequest(ModelState);
    
        return Ok();
    }

    Objetos anidados puede ser analizado por esta biblioteca.

Dejar respuesta

Please enter your comment!
Please enter your name here