tnblog
首页
登录

net core上传图片

1995人阅读 2019/3/30 11:51 总访问:198418 评论:0 手机 收藏
分类: .NET Core

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

 public ActionResult UploadImage(List<IFormFile> upfile)
        {

            //Request.Form.Files["file"]也可以通过这样的方式获取文件
            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 = "上传图片成功" };
        }

这里有个net core中获取项目根目录的物理路径问题:

具体可以参考:

http://www.tnblog.net/aojiancc2/article/details/2347


说一下两点注意:

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

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


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


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

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

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

     




评价
我愿与君共享生活喜悦,也愿与君共赴人生无常
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2020TNBLOG.NET