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);
            }
        }
}


本文为“技术点滴”的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注