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?