Beispiel #1
0
        /// <summary>
        /// 获取随机图片服务器
        /// </summary>
        /// <returns></returns>
        private ImageServiceDbModel GetRandImageService()
        {
            var imageServices = new ImageServiceManager().Query();

            if (imageServices.Count <= 0)
            {
                return(null);
            }
            var    serverCount  = imageServices.Count;
            Random rand         = new Random();
            int    randomNumber = rand.Next();
            int    serverIndex  = randomNumber % serverCount;

            return(imageServices[serverIndex]);
        }
Beispiel #2
0
        /// <summary>
        /// 存储实现
        /// </summary>
        /// <param name="stream"></param>
        /// <returns></returns>
        public string Save(Stream stream)
        {
            var serviceUrl   = ConfigurationManager.AppSettings["RootService"].ToString();
            var ImageService = new ImageServiceManager().Get(int.Parse(serviceUrl));

            #region 1.stream转Bytes
            var bytes = StreamToBytes(stream);
            #endregion
            #region 2.压缩处理
            //   var memoryStream = ComPress(bytes);
            #endregion
            #region 3.文件名生成
            var dateNow = DateTime.Now;
            var dicName = string.Format("{0}/{1}/{2}", dateNow.Year, dateNow.Month, dateNow.Day);
            var appPath = HttpRuntime.AppDomainAppPath;

            //服务器文件夹路径
            var ServiceDic = "/" + ImageService.PicRootPath + "/" + dicName;

            if (!System.IO.Directory.Exists(appPath + ServiceDic))//如果不存在就创建file文件夹
            {
                System.IO.Directory.CreateDirectory(appPath + ServiceDic);
            }
            //随机文件名
            var FileName = Guid.NewGuid().ToString("N") + dateNow.Ticks.ToString();

            var picpath = ServiceDic + "/" + FileName + ".jpg";

            var PicFullName = appPath + picpath;
            #endregion

            #region 4.文件保存

            // ImgSave(PicFullName, memoryStream);

            SaveFile(bytes, PicFullName);
            #endregion

            UpDate(picpath, ImageService.ServerId);



            return(ImageService.ServerUrl + picpath);
        }
Beispiel #3
0
        private void UpDate(string path, int ServiceId)
        {
            var image = new ImageManager();
            var model = new ImageInfoDbModel();

            model.CreateDate    = DateTime.Now;
            model.ImageName     = path;
            model.ImageServerId = ServiceId;
            image.Add(model);

            var ImageService = new ImageServiceManager();
            var dbmodel      = ImageService.Get(ServiceId);

            dbmodel.CurPicAmount++;
            if (dbmodel.CurPicAmount >= dbmodel.MaxPicAmount)
            {
                dbmodel.FlgUsable = false;
            }
            ImageService.Update(dbmodel);
        }