asp.net core上传文件:
public class BannerController : Controller
{
private ApplicationDbContext _db;
private IHostingEnvironment _environment;
public BannerController(ApplicationDbContext db, IHostingEnvironment environment)
{
_db = db;
_environment = environment;
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(BannerCreateViewModel viewModel)
{
if (ModelState.IsValid)
{
var file = viewModel.PicFile;
var uploads = Path.Combine(_environment.WebRootPath, "uploads/images");
var ext = Path.GetExtension(file.FileName);//获得文件扩展名
var timeStamp = DateTimeOffset.Now.ToUnixTimeSeconds();
var saveName = $"{timeStamp}{ext}";//实际保存文件名
using (var fileStream = new FileStream(Path.Combine(uploads, saveName), FileMode.Create))
{
await file.CopyToAsync(fileStream);
}
viewModel.Pic = saveName;
var model = Mapper.Map<BannerCreateViewModel, Banner>(viewModel);
_db.Banner.Add(model);
_db.SaveChanges();
return RedirectToAction(nameof(Index));
}
else
{
return View(viewModel);
}
}
}