| | |
| | | "sort" |
| | | "strconv" |
| | | "strings" |
| | | "sync" |
| | | "time" |
| | | "webserver/extend/code" |
| | | "webserver/extend/config" |
| | |
| | | } |
| | | var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit" |
| | | //根据人脸坐标扣出人脸小图 |
| | | t1 := time.Now() |
| | | cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom)) |
| | | logger.Debug("SubImg用时:", time.Since(t1)) |
| | | t1 = time.Now() |
| | | fileInfo, e := esutil.PostFormData(weedfsUri, filename, "file", cutFaceImgData) |
| | | logger.Debug("上传到weedfs用时:", time.Since(t1)) |
| | | t1 = time.Now() |
| | | if e != nil { |
| | | fmt.Println(e.Error()) |
| | | return "", nil, e |
| | |
| | | dbperson.FaceFeature = faceBase64 // 特征值base64 码 |
| | | |
| | | result := addDbPerson(dbperson) |
| | | logger.Debug("addDbPerson用时:", time.Since(t1)) |
| | | return fileNameOnly, result, nil |
| | | |
| | | } |
| | | |
| | | //func getFaceFeaFromSdk(fileBytes []byte) ([]*protomsg.ResultFaceExtCom,error,*protomsg.Image){ |
| | | // s := service.NewFaceSdkService(fileBytes) |
| | | // i, err := s.ReadFromUploadImg() |
| | | // if err !=nil{ |
| | | // fmt.Println("readFromUploadImg err:",err) |
| | | // return nil,err,i |
| | | // } |
| | | // bc, err := service.ImgCompress(i) |
| | | // if err !=nil { |
| | | // fmt.Println("ImgCompress err:",err) |
| | | // return nil,err,i |
| | | // } |
| | | // s.PushImgMsg(bc) |
| | | // s.GetFaceFea() |
| | | // if s.Result == nil{ |
| | | // return nil,errors.New("no fea"),i |
| | | // } else { |
| | | // return s.Result,nil,i |
| | | // } |
| | | //} |
| | | |
| | | /**上传方法**/ |
| | | |
| | |
| | | addResult := make(map[string]interface{}, 0) |
| | | successList := make([]string, 0) |
| | | failList := make([]string,0) |
| | | tAllStart := time.Now() |
| | | var wg sync.WaitGroup |
| | | var lock sync.Mutex |
| | | for _, head := range fileHeaders { |
| | | //文件的名称 |
| | | filename := head.Filename |
| | | file, err := head.Open() |
| | | fmt.Println(file, err, filename) |
| | | if err != nil { |
| | | log.Fatal(err) |
| | | } |
| | | |
| | | field, _, err1 := uploadFileReturnAddr(file, filename, tableId) |
| | | //extNames = append(extNames, field) |
| | | |
| | | if err1 != nil || field == "" { |
| | | failList = append(failList, filename) |
| | | } else { |
| | | successList = append(successList, filename) |
| | | } |
| | | wg.Add(1) |
| | | go func(head *multipart.FileHeader,tableId string) { |
| | | defer wg.Done() |
| | | tIStart := time.Now() |
| | | filename := head.Filename |
| | | file, err := head.Open() |
| | | fmt.Println(file, err, filename) |
| | | if err != nil { |
| | | lock.Lock() |
| | | failList = append(failList, filename) |
| | | lock.Unlock() |
| | | return |
| | | } |
| | | field, _, err1 := uploadFileReturnAddr(file, filename, tableId) |
| | | lock.Lock() |
| | | if err1 != nil || field == "" { |
| | | failList = append(failList, filename) |
| | | } else { |
| | | successList = append(successList, filename) |
| | | } |
| | | lock.Unlock() |
| | | logger.Debug(filename,"切图用时:",time.Since(tIStart)) |
| | | }(head, tableId) |
| | | wg.Wait() |
| | | } |
| | | logger.Debug("切",len(fileHeaders),"张人脸用时:", time.Since(tAllStart)) |
| | | addResult["successList"] = successList |
| | | addResult["failList"] = failList |
| | | addResult["fields"] = extNames |
| | | //addResult["detail"] = details |
| | | //fields := fdfsclient.UploadFileByBuffer100(bytess, extNames) // fastdfs 上传 |
| | | |
| | | if len(successList)>0 { |
| | | util.ResponseFormat(c, code.DbPersonUploadSuccess, addResult) |
| | | } else { |
| | | util.ResponseFormat(c, code.ServiceInsideError, err.Error()) |
| | | util.ResponseFormat(c, code.DbPersonUploadFail, addResult) |
| | | } |
| | | } |
| | | |