码迷,mamicode.com
首页 > Web开发 > 详细

.net core图片上传详解

时间:2020-07-29 15:29:50      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:sum   cep   col   highlight   rect   上传图片   ext   路径   mode   

首先有一点先确认下.net core 不存在Server.MapPath这个方法所以想引用服务器根目录或者web根目录应该在controller中引入IWebHostEnvironment对象

 private readonly IWebHostEnvironment _hostingEnvironment;
        public AdvertisementsController(IWebHostEnvironment hostingEnvironment) {
            _hostingEnvironment = hostingEnvironment;
        }

  

/// <summary>
        /// 上传图片
        /// </summary>
        /// <returns></returns>
        public async Task<ActionResult> Upload()
        {
            try
            {
                IFormFileCollection files = Request.Form.Files;
                
                var file = files[0];
                //获取文件名后缀
                string extName = Path.GetExtension(file.FileName).ToLower();
                //获取保存目录的物理路径
                if (System.IO.Directory.Exists(_hostingEnvironment.WebRootPath + "/upload/") == false)//如果不存在就创建images文件夹
                {
                    System.IO.Directory.CreateDirectory(_hostingEnvironment.WebRootPath + "/upload/");
                }
                string path = _hostingEnvironment.WebRootPath + "/upload/"; //path为某个文件夹的绝对路径,不要直接保存到数据库
                                                          //    string path = "F:\\TgeoSmart\\Image\\";
                                                          //生成新文件的名称,guid保证某一时刻内图片名唯一(文件不会被覆盖)
                string fileNewName = Guid.NewGuid().ToString();
                string ImageUrl = path + fileNewName + extName;
                //SaveAs将文件保存到指定文件夹中
                using (var stream = new FileStream(ImageUrl, FileMode.Create))
                {

                    await file.CopyToAsync(stream);
                }
                
                //此路径为相对路径,只有把相对路径保存到数据库中图片才能正确显示(不加~为相对路径)
                string url = "\\upload\\" + fileNewName + extName;
                return Json(new
                {
                    Result = true,
                    Data = url
                });
            }
            catch (Exception exception)
            {
                return Json(new
                {
                    Result = false,
                    exception.Message
                });
            }
        }

  

.net core图片上传详解

标签:sum   cep   col   highlight   rect   上传图片   ext   路径   mode   

原文地址:https://www.cnblogs.com/AndyLin/p/13396581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!