liuxiaolong
2020-03-11 f9a9f85a43c2a5b21ce4e1be1d1fa4d42dadea3e
fix face upload
1个文件已修改
20 ■■■■ 已修改文件
controllers/fileController.go 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/fileController.go
@@ -71,7 +71,7 @@
    filename := header.Filename
    var result = make(map[string]string)
    if picType == "1" {
        fileNameOnly, _, err, faceFeature := uploadFileReturnAddr(file, filename, "", false)
        _, _, err, faceFeature, faceUrlPath := uploadFileReturnAddr(file, filename, "", false)
        if err != nil {
            if err.Error() == "NotFeatureFindError" {
                util.ResponseFormat(c, code.NotFeatureFindError, filename)
@@ -80,7 +80,7 @@
            }
            return
        }
        result["picUrl"] = fileNameOnly
        result["picUrl"] = faceUrlPath
        result["faceFeature"] = faceFeature
    } else {
        localConf, err2 := cache.GetServerInfo()
@@ -779,24 +779,24 @@
log.Fatalln(err)
}*/
func uploadFileReturnAddr(file multipart.File, filename string, tableId string, add2Db bool) (string, map[string]interface{}, error, string) {
func uploadFileReturnAddr(file multipart.File, filename string, tableId string, add2Db bool) (string, map[string]interface{}, error, string, string) {
    defer file.Close()
    // weedfs 上传
    fileBytes, err := ioutil.ReadAll(file)
    if err !=nil {
        return "",nil,err,""
        return "",nil,err,"",""
    }
    //将上传的图片交人脸检测和人脸提取,获得特征
    var faceBase64=""
    faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes, time.Second*5)
    if faceArr ==nil {
        return "",nil,errors.New("NotFeatureFindError"),""
        return "",nil,errors.New("NotFeatureFindError"),"",""
    }
    var rcFace *protomsg.Rect
    if err ==nil && len(faceArr) >0 {
        if len(faceArr) >1 {
            return "",nil, errors.New("TooManyFaces"),""
            return "",nil, errors.New("TooManyFaces"),"",""
        }
        for _,r := range faceArr {
            //拿到人脸的坐标
@@ -809,7 +809,7 @@
    localConf, err2 := cache.GetServerInfo()
    if err2 !=nil || localConf.WebPicIp == "" {
        logger.Debug("localConfig is wrong!!!")
        return "",nil,err2,""
        return "",nil,err2,"",""
    }
    var weedfsUri = "http://"+localConf.WebPicIp+":"+strconv.Itoa(int(localConf.WebPicPort))+"/submit?collection=persistent"
    //根据人脸坐标扣出人脸小图
@@ -822,7 +822,7 @@
    t1 = time.Now()
    if e != nil {
        logger.Debug("WeedFSClient.UploadFile err:", e)
        return "", nil, e,""
        return "", nil, e,"",""
    }
    ext := path.Ext(filename)
@@ -841,7 +841,7 @@
    }
    logger.Debug("addDbPerson用时:", time.Since(t1))
    return fileNameOnly, result, nil,faceBase64
    return fileNameOnly, result, nil,faceBase64, weedFilePath
}
@@ -898,7 +898,7 @@
                lock.Unlock()
                return
            }
            field, _, err1,_ := uploadFileReturnAddr(file, filename, tableId, true)
            field, _, err1,_,_ := uploadFileReturnAddr(file, filename, tableId, true)
            lock.Lock()
            if err1 != nil || field == "" {
                if err1 !=nil && err1.Error() == "NotFeatureFindError" {