tnblog
首页

net core上传图片

51人阅读 2019/3/30 11:51 评论:0 收藏
分类: .NET Core


上传图片的前台代码都完全一样,直接来贴后台的代码吧

 public ActionResult UploadImage(List<IFormFile> upfile)
        {

            if (upfile == null)
            {
                return new ContentResult { ContentType = "application/json;charset=UTF-8", Content = "文件资源为空" };
            }

            //获取静态资源文件根目录
            string webRootPath = _hostingEnvironment.WebRootPath;

            foreach (var formFile in upfile)
            {
                if (formFile.Length > 0)
                {

                    string fileExt = formFile.FileName.Substring(formFile.FileName.LastIndexOf('.')); //文件扩展名
                    long fileSize = formFile.Length; //获得文件大小,以字节为单位

                    if (fileSize > 1024 * 1024 * 2) //2M
                    {
                        //上传的文件不能大于2M
                    }

                    string newFileName = System.Guid.NewGuid().ToString("N") + fileExt; //随机生成新的文件名
                    var filePath = webRootPath + "/arcimg/" + newFileName;//上传文件的完整目录
                    using (var stream = new FileStream(filePath, FileMode.Create))
                    {
                        formFile.CopyTo(stream);
                        stream.Flush();
                    }
                }
            }

            return new ContentResult { ContentType = "application/json;charset=UTF-8", Content = "上传图片成功" };
        }

说一下两点注意:

1:net core中没有saveas,所有不能使用saveas这个方法来上传图片

     而是通过一个文件流来上传,最重要的就是formFile.CopyTo(stream了);


2:upfile这个就是对应前台文件选择框的name


3:  图片存放的地址,不要随便新建一个文件夹去存储,那样是访问不到的!!!!,应该放到那个wwwroot

     文件夹里边去,那个是官方推荐的存储静态资源的位置,例如js,css,图片等文件

     所以可以在哪里去创建一个文件夹

     







评价

{{item.title}}

{{item.content}}
断剑重铸之日,骑士归来之时
博主搜索
文章类别
最新文章
最新评价
{{item.ArticleTitle}}
{{item.BlogName}} : {{item.Content}}