Exemple #1
0
        /// <summary>
        /// 保存文件 返回对象
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        public UserPictureFile SavePostedFile(HttpPostedFile file)
        {
            byte[] btImgs = new byte[file.ContentLength];
            file.InputStream.Read(btImgs, 0, btImgs.Length);
            ///压缩图片
            System.Drawing.Image original_image = System.Drawing.Image.FromStream(file.InputStream); //使用流创建图片
            int width  = original_image.Width;                                                       //图片的宽度
            int height = original_image.Height;                                                      //图片的高度

            ComputWidthHeight(ref width, ref height);
            System.Drawing.Image newImg = PictureFileConverter.GetThumbnailImage("", width, height, file.InputStream);
            byte[] newBytes             = PictureFileConverter.ImageToByteArray(newImg, System.Drawing.Imaging.ImageFormat.Jpeg);
            string fileBase64Str        = Convert.ToBase64String(newBytes);

            newImg.Dispose();           //释放
            file.InputStream.Dispose(); //释放
            original_image.Dispose();   //释放
            ///压缩图片 结束

            UserPictureFile model = new UserPictureFile();

            model.FileContent   = fileBase64Str;
            model.Extension     = file.ContentType;
            model.FileName      = file.FileName;
            model.OperatorId    = string.Empty;
            model.PictureFileNo = DateTime.Now.ToString("yyyyMMddHHmmssfff") + ThreadSafeRandom.Next(1000).ToString("000");
            InsertPicFile(model);
            return(model);
        }
Exemple #2
0
        public ImageModel GetPic(int width, int height, string pictureFileNo, string type)
        {
            //如果图片不存在的错误----
            string filecontent  = string.Empty;
            string picExtension = string.Empty;

            try
            {
                switch (type)
                {
                case "1":
                    ProductPictureFile model = DapperUtil.QueryByIdentityWithNoLock <ProductPictureFile>(pictureFileNo);
                    filecontent  = model.FileContent;
                    picExtension = model.Extension;
                    break;


                case "2":
                    SystemPictureFile model2 = DapperUtil.QueryByIdentityWithNoLock <SystemPictureFile>(pictureFileNo);
                    filecontent  = model2.FileContent;
                    picExtension = model2.Extension;
                    break;


                case "3":
                    UserPictureFile model3 = DapperUtil.QueryByIdentityWithNoLock <UserPictureFile>(pictureFileNo);
                    filecontent  = model3.FileContent;
                    picExtension = model3.Extension;
                    break;
                }
            }
            catch (Exception)
            {
                return(new ImageModel());
            }
            Image      outImage = PictureFileConverter.GetThumbnailImage(filecontent, width, height);
            ImageModel imgModel = new ImageModel
            {
                Extension = picExtension,
                Image     = outImage
            };

            return(imgModel);
        }
Exemple #3
0
 public void InsertPicFile(UserPictureFile model)
 {
     DapperUtil.Insert <UserPictureFile>(model);
 }
        private Dictionary <string, string> CheckOrSaveExperienceReportImg(Boolean isSave = false, Boolean notcheck = false)
        {
            #region 图片上传与检测
            Dictionary <string, string> result = new Dictionary <string, string>();
            result["success"] = "";
            result["error"]   = "";
            HttpFileCollection Files = System.Web.HttpContext.Current.Request.Files;
            int fileCount            = 0;
            if (Files != null && Files.Count > 0)// && Files[0].ContentLength > 0)
            {
                List <string> indexes    = new List <string>();
                string        types      = null;// AppSettingManager.AppSettings["InputUserCommentImgType"];
                string[]      allowTypes = string.IsNullOrEmpty(types) ? (new string[] { ".jpg", ".gif", ".png", ".jpeg" }) : (types.Split('/'));

                //允许上传的大小 , 以字节为单位 , 稍后读取配置文件
                int allowSize = 4 * 1024 * 1024;
                for (int i = 0; i < Files.Count; i++)
                {
                    if (indexes.Contains(i.ToString()) || Files[i].ContentLength == 0)
                    {
                        continue;
                    }
                    string          fileFullName = Files[i].FileName;
                    string          fileType     = System.IO.Path.GetExtension(fileFullName).ToLower();
                    string          fileName     = Path.GetFileName(fileFullName);
                    ImageTypeEnum[] allowType    = new ImageTypeEnum[] { ImageTypeEnum.JPG, ImageTypeEnum.PNG, ImageTypeEnum.GIF };
                    if (notcheck || allowTypes.Contains(fileType) && (allowType.Contains(ImageTypeCheck.CheckImageType(Files[i].InputStream, false))))
                    {
                        int conLen = Files[i].ContentLength;
                        if (conLen <= allowSize && conLen > 0)//需要保存时
                        {
                            if (fileCount == 3)
                            {
                                result["error"] = "上传图片数量最多为3张";
                                return(result);
                            }
                            fileCount++;
                            if (!isSave)
                            {
                                continue;
                            }
                            UserPictureFile model = new UserPictureFile();
                            //读取文件为 二进制流 , 保存到  图片表 , 返回 图片编号
                            model             = productCommentService.SavePostedFile(Files[i]);
                            result["success"] = result["success"] + "|" + model.PictureFileNo;
                        }
                        else if (conLen > allowSize)
                        {
                            result["error"] = "上传文件长度超过4MB";
                            return(result);
                        }
                    }
                    else
                    {
                        result["error"] = "上传文件类型错误";
                        return(result);
                    }
                }
            }
            else
            {
                result["success"] = "";
            }
            if (fileCount == 0)
            {
                result["success"] = ""; result.Add("noimg", "noimg");
            }
            else
            {
                if (result["success"].Length == 0)
                {
                    result["success"] = "1";
                }
            }
            return(result);

            #endregion
        }