I am attempting to upload an image using MVC 6
; however, I am not able to find the class HttpPostedFileBase
. I have checked the GitHub
and did not have any luck. Does anyone know the correct way to upload a file in MVC6
?
MVC 6 used another mechanism to upload files. You can get more examples on GitHub or other sources. Just use IFormFile
as a parameter of your action or a collection of files or IFormFileCollection
if you want upload few files in the same time:
public async Task<IActionResult> UploadSingle(IFormFile file)
{
FileDetails fileDetails;
using (var reader = new StreamReader(file.OpenReadStream()))
{
var fileContent = reader.ReadToEnd();
var parsedContentDisposition = ContentDispositionHeaderValue.Parse(file.ContentDisposition);
var fileName = parsedContentDisposition.FileName;
}
...
}
[HttpPost]
public async Task<IActionResult> UploadMultiple(ICollection<IFormFile> files)
{
var uploads = Path.Combine(_environment.WebRootPath,"uploads");
foreach(var file in files)
{
if(file.Length > 0)
{
var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
await file.SaveAsAsync(Path.Combine(uploads,fileName));
}
...
}
}
You can see current contract of IFormFile
in asp.net sources. See also ContentDispositionHeaderValue
for additional file info.