webapi上传图片

1,file上传图片

/// <summary>
        /// 上传图片
        /// </summary>
        /// <returns></returns>
        [Route("Upload/FormImg")]
        [HttpPost]

        public async Task<DTOTO> UploadImg(List<IFormFile> files)
        {

            DTOTO res = new DTOTO();
            if (files.Count < 1)
            {
                res.Code = 0;
                res.msg = "不能为空";

                return res;
            }
            //返回的文件地址
            List<string> filenames = new List<string>();
            var now = DateTime.Now;
            //文件存储路径
            var filePath = string.Format("/Uploads/{0}/{1}/{2}/", now.ToString("yyyy"), now.ToString("yyyyMM"), now.ToString("yyyyMMdd"));
            //获取当前web目录
            var webRootPath = _hostingEnvironment.WebRootPath;
            if (!Directory.Exists(webRootPath + filePath))
            {
                Directory.CreateDirectory(webRootPath + filePath);
            }
            try
            {
                foreach (var item in files)
                {
                    if (item != null)
                    {
                        #region  图片文件的条件判断
                        //文件后缀
                        var fileExtension = Path.GetExtension(item.FileName);

                        //判断后缀是否是图片
                        const string fileFilt = ".gif|.jpg|.jpeg|.png";
                        if (fileExtension == null)
                        {
                            break;
                            //return Error("上传的文件没有后缀");
                        }
                        if (fileFilt.IndexOf(fileExtension.ToLower(), StringComparison.Ordinal) <= -1)
                        {
                            break;
                            //return Error("请上传jpg、png、gif格式的图片");
                        }

                        //判断文件大小    
                        long length = item.Length;
                        if (length > 1024 * 1024 * 2) //2M
                        {
                            break;
                            //return Error("上传的文件不能大于2M");
                        }

                        #endregion

                        var strDateTime = DateTime.Now.ToString("yyMMddhhmmssfff"); //取得时间字符串
                        var strRan = Convert.ToString(new Random().Next(100, 999)); //生成三位随机数
                        var saveName = strDateTime + strRan + fileExtension;

                        //插入图片数据                 
                        using (FileStream fs = System.IO.File.Create(webRootPath + filePath + saveName))
                        {
                            await item.CopyToAsync(fs);
                            fs.Flush();
                        }
                        filenames.Add(filePath + saveName);
                    }
                }
                res.Code = 1;
                res.msg = "上传成功";
                res.Data = filenames;
                return res;
            }
            catch (Exception ex)
            {
                //这边增加日志,记录错误的原因
                //ex.ToString();
                res.Code = 0;
                
                return res;
            }

            
        }

2,base上传图片

 /// <summary>
        /// 
        /// </summary>
        /// <param name="fileBase64"></param>
        /// <param name="fileExt"></param>
        /// <returns></returns>
        ///  [EnableCors("cors")]
      
        [HttpPost,Route("UploadBase64")]

        public DTOTO UploadBase64([FromForm]string fileBase64, [FromForm]string fileExt)
        {
            
            DTOTO dTOTO = new DTOTO();

            byte[] bytes = Convert.FromBase64String(fileBase64); 
            //var fileExtension = Path.GetExtension(fileName);
            //int index = fileExt.IndexOf("/")+1;
            //string c = fileExt.Substring(index, fileExt.Length - index);
            string webRootPath = _hostingEnvironment.WebRootPath;
            string newFileName = System.Guid.NewGuid().ToString() + "." + fileExt; //随机生成新的文件名

            var filePath = webRootPath + "/upload";
            var RetfilePath = "upload/" + newFileName;
            if (!Directory.Exists(filePath))
            {
                Directory.CreateDirectory(filePath);
            }
            filePath = webRootPath + "/upload/" + newFileName;
            try
            {
                dTOTO.Code = 0;
                FileStream fs = new FileStream(filePath, FileMode.CreateNew);
                fs.Write(bytes, 0, bytes.Length);
                fs.Close();
                dTOTO.msg = "上传成功";
                dTOTO.Data = RetfilePath;
            }
            catch (Exception ex)
            {
                dTOTO.Code = 1;
                dTOTO.msg = "newFileName:" + newFileName + "Error:" + ex.Message;
            }
            return dTOTO;
        }

版权声明:本文为chafferer_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。