コード例 #1
0
        // GET: PhotoImage
        public ActionResult Index(Guid?id)
        {
            //return View();
            if (null == id)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var rep  = new PhotoImageRepository(db);
            var file = rep.GetByID(id);

            if (null == file)
            {
                return(HttpNotFound("文件不存在!"));
            }

            //首先从缓存获取相关数据
            string filepath = file.FilePath;

            if (System.IO.File.Exists(filepath))
            {
                //读取文件数据
                var data = System.IO.File.ReadAllBytes(filepath);
                return(File(data, file.MimeType, file.FileName));
            }
            else
            {
                return(HttpNotFound("文件不存在!"));
            }
        }
コード例 #2
0
        public PhotoImage Upload(FileData entity)
        {
            if (null == entity)
            {
                return(null);
            }

            try
            {
                var rep  = new PhotoImageRepository(db);
                var file = rep.Create(entity.Data, entity.FileName, "admin");
                return(file);
            }
            catch (Exception exp)
            {
                return(null);
            }
        }
コード例 #3
0
        public ActionResult Upload(HttpPostedFileBase fileToUpload)
        {
            if (null == fileToUpload)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            try
            {
                var rep = new PhotoImageRepository(db);
                //var file = rep.Create(fileToUpload, HttpContext.User.Identity.Name);
                var file = rep.Create(fileToUpload, "admin");
                return(Json(file));
            }
            catch (Exception exp)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.InternalServerError, exp.Message));
            }
        }
コード例 #4
0
        public void RunQueryThread()
        {
            //开启一个线程,不停的获取数据,然后查询数据
            System.Threading.Thread thread =
                new System.Threading.Thread(new System.Threading.ThreadStart(async() => {
                var db      = new ApplicationDbContext();
                var rep     = new PhotoImageRepository(db);
                var service = new UFaceService();
                while (true)
                {
                    var b = false;
                    lock (exitLock)
                    {
                        b = bExit;
                    }
                    if (b)
                    {
                        break;
                    }

                    if (queuePhoto.Count == 0)
                    {
                        System.Threading.Thread.Sleep(10);
                        continue;
                    }

                    PhotoImageQueryItem item = null;
                    lock (queueLock)
                    {
                        item = queuePhoto.Dequeue();
                    }

                    if (item == null)
                    {
                        continue;
                    }

                    try
                    {
                        //查询数据
                        var list = await service.FaceFind(item.Camera, item.PersonID);
                        if (list != null && list.Length > 0)
                        {
                            //找到对应的;然后更新
                            foreach (var v in list)
                            {
                                if (string.Compare(v.faceId, item.FaceID) == 0)
                                {
                                    var photo = new PhotoImage()
                                    {
                                        ID         = item.PhotoImageID,
                                        Feature    = v.feature,
                                        FeatureKey = v.featureKey,
                                    };
                                    rep.UpdateFeature(photo, null);
                                    break;
                                }
                            }
                        }
                    }
                    catch (Exception exp)
                    {
                        System.Diagnostics.Debug.WriteLine(exp);
                    }
                    //
                    System.Threading.Thread.Sleep(10);
                }
            }));
            thread.IsBackground = true;
            thread.Start();
        }