人如果没有梦想那和咸鱼有什么区别,即使是做咸鱼也要做最咸的那一条

—— Wy

ASP.NET Core上传图片接口

最近做博客需要,需要用到上传图片,这里记录一下




public async Task<IActionResult> OnPostUpload()
        {
            var date = Request;
            var files = Request.Form.Files;
            long size = files.Sum(f => f.Length);
            string shortTime = $"/Update/{DateTime.Now.ToString("yyyy/MM/dd")}/";
            string filePhysicalPath = $@"{_host.WebRootPath}/{shortTime}";  //文件路径  可以通过注入 IHostingEnvironment 服务对象来取得Web根目录和内容根目录的物理路径
            if (!Directory.Exists(filePhysicalPath)) //判断上传文件夹是否存在,若不存在,则创建
            {
                Directory.CreateDirectory(filePhysicalPath); //创建文件夹
            }
            List<string> urlLs = new List<string>();
            foreach (var file in files)
            {
                if (file.Length > 0)
                {
                    var fileName = System.Guid.NewGuid().ToString() + Path.GetExtension(file.FileName);//文件名+文件后缀名
                    using (var stream = new FileStream(filePhysicalPath + fileName, FileMode.Create))
                    {
                        await file.CopyToAsync(stream);
                    }
                    urlLs.Add($"{shortTime}{fileName}");
                }
            }
            return new JsonResult(TmpUrl.SuccessInfo("上传成功", urlLs));
        }

这里_host是构造函数注入进来的


private IHostingEnvironment _host = null;
        public BlogSiteConfig blogSite { get; set; } = BlogStaticData.GetSiteConfig().Clone() as BlogSiteConfig;

        public BlogController(IHostingEnvironment host)
        {
            _host = host;
        }




评论

用户默认头像
发表我的评论
取消评论
看不清,点击刷新验证码