w3schools formdata array jquery asp.net-web-api multipartform-data

jquery - array - Webapi ajax formdata carga con parámetros adicionales



formdata w3schools (1)

La publicación del objeto FormData da como resultado una solicitud con tipo de contenido multipart / form-data. Tienes que leer el contenido de la solicitud así:

[HttpPost] public async Task<string> Upload() { var provider = new MultipartFormDataStreamProvider("C://Somefolder"); await Request.Content.ReadAsMultipartAsync(provider); var myParameter = provider.FormData.GetValues("myParameter").FirstOrDefault(); var count = provider.FileData.Count; return count + " / " + myParameter; }

Por cierto, esto guardará el archivo en la ruta especificada, que es C://SomeFolder y puede obtener el nombre de archivo local utilizando provider.FileData[0].LocalFileName;

Mire la muestra del código de MSDN y la entrada del blog de Henrik .

Estoy usando jQuery ajax para cargar archivos pero quiero agregar algunos parámetros en el método webapi, aquí está:

var data = new FormData(); data.append("file", $("#file")[0].files[0]); data.append("myParameter", "test"); // with this param i get 404 $.ajax({ url: ''/api/my/upload/'', data: data, cache: false, contentType: false, processData: false, type: ''POST'', success: function (data) { console.log(data); } });

El controlador Webapi:

public class MyController : ApiController { public string Upload(string myParameter) { return System.Web.HttpContext.Current.Request.Files.Count.ToString() + " / " + myParameter; } }

Sin myParameter, todo funciona, pero cuando incluyo myParameter en formdata y en el método api, obtengo 404, ¿hay alguna posibilidad de que funcione?