liuxiaolong
2019-07-20 0c37c84b7a870c159cc03e445dadc3772affbb7d
fix person upload
2个文件已修改
26 ■■■■■ 已修改文件
controllers/fileController.go 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/FaceSdkService.go 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/fileController.go
@@ -14,8 +14,10 @@
    "log"
    "mime/multipart"
    "net/http"
    "path"
    "strconv"
    "strings"
    "time"
    "webserver/extend/code"
    "webserver/extend/config"
    "webserver/extend/esutil"
@@ -71,7 +73,7 @@
        // fastdfs 上传  暂废弃
        //field := fdfsclient.UploadFileByBuffer(data, fileSuffix)
    }
    field, result, err := uploadFileReturnAddr(file, filename, tableId)
    fileNameOnly, result, err := uploadFileReturnAddr(file, filename, tableId)
    if err != nil {
        if err.Error() == "NotFeatureFindError" {
            util.ResponseFormat(c, code.NotFeatureFindError, filename)
@@ -87,7 +89,7 @@
            util.ResponseFormat(c, code.ServiceInsideError, result["data"])
        }
    } else {
        util.ResponseFormat(c, code.Success, field)
        util.ResponseFormat(c, code.Success, fileNameOnly)
    }
}
@@ -103,7 +105,7 @@
    //将上传的图片交人脸检测和人脸提取,获得特征
    fileBytes, _ := ioutil.ReadAll(file)
    faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes)
    faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes, time.Second*5)
    if err ==nil && len(faceArr) >0 {
        var faceBase64= ""
        var field = ""
@@ -150,7 +152,7 @@
    //将上传的图片交人脸检测和人脸提取,获得特征
    var faceBase64=""
    faceArr, err,pI := service.GetFaceFeaFromSdk(fileBytes)
    faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes, time.Second*5)
    if faceArr ==nil {
        return "",nil,errors.New("NotFeatureFindError")
    }
@@ -179,17 +181,19 @@
        field = field[idx+1:]
    }
    fmt.Println("field:",field)
    ext := path.Ext(filename)
    fileNameOnly := strings.TrimSuffix(filename, ext)
    dbperson := new(models.Dbtablepersons)
    dbperson.PersonPicUrl = field //  图片路经
    dbperson.TableId = tableId           //
    dbperson.PersonName = filename       // 图片名
    dbperson.PersonName = fileNameOnly       // 图片名
    // 演示base64编码
    dbperson.FaceFeature = faceBase64 // 特征值base64 码
    result := addDbPerson(dbperson)
    return field, result, nil
    return fileNameOnly, result, nil
}
service/FaceSdkService.go
@@ -17,6 +17,7 @@
    File []byte
    Id string
    Result []*protomsg.ResultFaceDetect
    DeadTime time.Duration
}
const (
@@ -29,8 +30,8 @@
    Url_Service_PULL   = Ipc_Url_Pre + Virtual_FaceSdkId + Ipc_Pull_Ext
)
func GetFaceFeaFromSdk(fileBytes []byte) ([]*protomsg.ResultFaceDetect,error,*protomsg.Image){
    s := NewFaceSdkService(fileBytes)
func GetFaceFeaFromSdk(fileBytes []byte,deadTime time.Duration) ([]*protomsg.ResultFaceDetect,error,*protomsg.Image){
    s := NewFaceSdkService(fileBytes, deadTime)
    i, err := s.ReadFromUploadImg()
    if err !=nil{
        logger.Debug("readFromUploadImg err:",err)
@@ -50,10 +51,11 @@
    }
}
func NewFaceSdkService(fileBytes []byte) FaceSdkService{
func NewFaceSdkService(fileBytes []byte, deadTime time.Duration) FaceSdkService{
    return FaceSdkService{
        File:fileBytes,
        Id:uuid.NewV4().String(),
        DeadTime:deadTime,
    }
}
@@ -135,7 +137,7 @@
func (s *FaceSdkService) GetFaceFea(){
    var wg sync.WaitGroup
    wg.Add(1)
    ticker := time.NewTicker(time.Second * 3)
    ticker := time.NewTicker(s.DeadTime)
    go func(ticker *time.Ticker, s *FaceSdkService) {
        defer ticker.Stop()
        defer wg.Done()