wwwroot pages net asp c# asp.net-core-1.0

c# - pages - ¿Cómo guardar IFormFile en disco?



upload file.net core 2 (1)

Estoy tratando de guardar un archivo en el disco usando este pedazo de código .

IHostingEnvironment _hostingEnvironment; public ProfileController(IHostingEnvironment hostingEnvironment) { _hostingEnvironment = hostingEnvironment; } [HttpPost] public async Task<IActionResult> Upload(IList<IFormFile> files) { foreach (var file in files) { var fileName = ContentDispositionHeaderValue .Parse(file.ContentDisposition) .FileName .Trim(''"''); var filePath = _hostingEnvironment.WebRootPath + "//wwwroot//" + fileName; await file.SaveAsAsync(filePath); } return View(); }

Pude reemplazar IApplicationEnvironment con IHostingEnvironment , y ApplicationBasePath con WebRootPath .

Parece que IFormFile ya no tiene SaveAsAsync () . ¿Cómo guardo el archivo en el disco entonces?


Algunas cosas han cambiado desde el lanzamiento de los candidatos del núcleo.

public class ProfileController : Controller { private IHostingEnvironment _hostingEnvironment; public ProfileController(IHostingEnvironment environment) { _hostingEnvironment = environment; } [HttpPost] public async Task<IActionResult> Upload(IList<IFormFile> files) { var uploads = Path.Combine(_hostingEnvironment.WebRootPath, "uploads"); foreach (var file in files) { if (file.Length > 0) { var filePath = Path.Combine(uploads, file.FileName); using (var fileStream = new FileStream(filePath, FileMode.Create)) { await file.CopyToAsync(fileStream); } } } return View(); } }