.Net Core WebApi 控制器自动创建文件夹上传图片

 /// <summary>
        /// 异步图片或文件上传
        /// </summary>
        /// <param name="formFile"></param>
        /// <returns></returns>
        [HttpPost]
        public async Task<JsonResult> UploadPic(IFormFile formFile)
        {
            //定义文件夹路径
            var FolderPath = $"/UploadFile/{DateTime.Now.ToString("yyyyMMdd")}";

            //上传文件重命名 获取上传文件的扩展名
            var FilePath = $"/{DateTime.Now.ToString("yyyyMMddHHmmssfff")}{Path.GetExtension(formFile.FileName)}";

            //如果 path 指向现有目录,则为 true;如果该目录不存在或者在尝试确定指定目录是否存在时出错,则为 false。
            if (!Directory.Exists($"{env.WebRootPath}{FolderPath}"))
                //创建新的指定目录
                Directory.CreateDirectory($"{env.WebRootPath}{FolderPath}");

            //using释放非托管资源 {env.WebRootPath}{FolderPath}{FilePath} 文件路径+文件名称
            //FileMode 指定操作系统打开文件的方式
            //OpenOrCreate指定操作系统应打开文件(如果文件存在);否则,应创建新文件
            using (FileStream fs = new FileStream($"{env.WebRootPath}{FolderPath}{FilePath}", FileMode.OpenOrCreate))
            {
                //异步获取文件内容
                await formFile.CopyToAsync(fs);
            }

            //返回图片的文件夹路径+名称
            return new JsonResult(new
            {
               FilePath = $"{FolderPath}{FilePath}"
            });
        }

posted on 2022-10-20 18:48  输者  阅读(176)  评论(0编辑  收藏  举报