wwwroot net iformfile form data asp asp.net visual-studio-2015 asp.net-core-mvc

asp.net - iformfile - upload file net core 2



¿Por qué IFormFile se muestra nulo y cómo lo arreglo? (1)

Estoy usando ASP.NET 5, MVC 6 en VS 2015. Estoy haciendo una aplicación web. En mi formulario tengo:

<form method="post" enctype="multipart/form-data"> <div id="uploadSection" > <label >Select files for upload</label> <input type="file" id="fileSelect" name="fileSelect" multiple /> </div> <div> <input type="submit" id="thisbutton" value="button" /> </div> </form>

en mi controlador:

[HttpPost] public async Task<IActionResult> FileForm(FileViewModel vm, IFormFile file) { if (ModelState.IsValid) { //IFormFileCollection files = Request.Form.Files; string filePath = Path.Combine("C:", "transfers"); //foreach (var file in files) //{ if (file != null && file.Length > 0) { var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim(''"''); await file.SaveAsAsync(Path.Combine(filePath, fileName)); } //} ModelState.Clear(); } return View(); }

Tengo un formulario mucho más grande con campos de formulario madre en él que van a mi FormViewModel (TODOS los campos se están llenando como deberían), y en realidad intenté colocar el IFormFileCollection, ICollection, IList, List como los parámetros en el método anterior y en su lugar También poniéndolo directamente en mi modelo de vista. Ya sea que lo haga como archivo único o múltiple, en el modelo o en el controlador, siempre obtengo el valor nulo. El ''IFormFileCollecion files = Request.Form.Files'' realmente funciona, pero no quiero hacerlo de esa manera porque debería funcionar como lo tengo o lo tuve. Cuando coloco la propiedad de los archivos en mi modelo, coloco "[Requerido]" sobre ella y no se dispara.

Y, aún mejor, lo ejecuté varias veces con Fiddler y en realidad ESTÁ PUBLICANDO los archivos, ¿por qué no se lanzan al modelo?

¿Tengo mis dependencias mal? ¿Alguien puede pensar en lo que podría causar esto?

"dependencies": { "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final", "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final", "Microsoft.AspNet.Mvc": "6.0.0-rc1-final", "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final", "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final", "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final", "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final", "Microsoft.AspNet.Http": "1.0.0-rc1-final", "Microsoft.Extensions.Configuration.FileProviderExtensions" : "1.0.0-rc1-final", "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final", "Microsoft.Extensions.Logging": "1.0.0-rc1-final", "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final", "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final", "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final" },


Su entrada de archivo tiene un atributo de nombre de "fileSelect". El nombre de su parámetro a su acción es "archivo". Hazlos coincidir y debería funcionar.