• .Net Core 上传图片


            /// <summary>
            /// 图片上传并存入数据库
            /// </summary>
            /// <returns></returns>
            public JsonResult InsertPicture()
            {
                var uploadfile = Request.Form.Files[0];
                var now = DateTime.Now;
                var webRootPath = _environment.WebRootPath;
                var filePath = string.Format("/Uploads/Images/{0}/{1}/{2}/", now.ToString("yyyy"), now.ToString("yyyyMM"), now.ToString("yyyyMMdd"));
    
                if (!Directory.Exists(webRootPath + filePath))
                {
                    Directory.CreateDirectory(webRootPath + filePath);
                }
    
                if (uploadfile != null)
                {
                    //文件后缀
                    var fileExtension = Path.GetExtension(uploadfile.FileName);
    
                    //判断后缀是否是图片
                    const string fileFilt = ".gif|.jpg|.php|.jsp|.jpeg|.png|......";
                    if (fileExtension == null)
                    {
                        return new JsonResult(new JsonResultModel { isSucceed = false, resultMsg = "上传的文件没有后缀" });
                    }
                    if (fileFilt.IndexOf(fileExtension.ToLower(), StringComparison.Ordinal) <= -1)
                    {
                        return new JsonResult(new JsonResultModel { isSucceed = false, resultMsg = "上传的文件不是图片" });
                    }
    
                    //判断文件大小    
                    long length = uploadfile.Length;
                    if (length > 1024*1024*2) //2M
                    {
                        return new JsonResult(new JsonResultModel { isSucceed = false, resultMsg = "上传的文件不能大于2M" });
                    }
    
                    var strDateTime = DateTime.Now.ToString("yyMMddhhmmssfff"); //取得时间字符串
                    var strRan = Convert.ToString(new Random().Next(100, 999)); //生成三位随机数
                    var saveName = strDateTime + strRan + fileExtension;
    
                    //插入图片数据
                    var picture = new Picture
                    {
                        MimeType = uploadfile.ContentType,
                        AltAttribute = "",
                        FilePath = filePath + saveName,
                        CreatedDateTime = DateTime.Now
                    };
                    using (FileStream fs = System.IO.File.Create(webRootPath + filePath + saveName))
                    {
                        uploadfile.CopyTo(fs);
                        fs.Flush();
                    }
                    _pictureService.Insert(picture);
                    return new JsonResult(new  {isSuccess = true, returnMsg = "上传成功", imgId = picture.Id, imgUrl = picture.FilePath});
                }
                return new JsonResult(new JsonResultModel { isSucceed = false, resultMsg = "上传失败" });
            }

    最重要的一行代码就是 uploadfile.CopyTo(fs);

    在.Net Core 中没有SaveAs

  • 相关阅读:
    HOT: AgentFramework 即将发布
    关于配置 Apache + SVN 1.5 + SSL
    LINQ to SQL(LINQ2SQL) vs. ADO.NET Entity Framework(ADOEF)ccBoy版 阅读笔记
    关于导出属性
    linq to sql 与linq to entities的选择
    linq to sql 算ORM吗?
    匿名方法实现(转)
    Aop中动态横切与静态横切
    老张的灵魂——敏捷回顾
    忙于webmis中
  • 原文地址:https://www.cnblogs.com/ideacore/p/6283270.html
Copyright © 2020-2023  润新知