liuxiaolong
2019-06-28 b4682ed34ef9e89649ded8723ffb4aaac63139e1
controllers/fileController.go
@@ -1,20 +1,22 @@
package controllers
import (
   "basic.com/pubsub/protomsg.git"
   "bytes"
   "encoding/base64"
   "fmt"
   "github.com/gin-gonic/gin"
   "webserver/extend/code"
   "webserver/extend/esutil"
   "webserver/extend/util"
   "webserver/models"
   "github.com/satori/go.uuid"
   "image"
   "image/jpeg"
   "log"
   "mime/multipart"
   "net/http"
   "webserver/extend/code"
   "webserver/extend/esutil"
   "webserver/extend/util"
   "webserver/models"
   "webserver/service"
)
type FileController struct {
@@ -100,6 +102,22 @@
      filename = uuid.NewV4().String()
   }
   //将上传的图片交人脸检测和人脸提取,获得特征
   var faceBase64=""
   faceExtArr, err := getFaceFeaFromSdk(file)
   if err ==nil && len(faceExtArr) >0 {
      for _,r := range faceExtArr {
         faceBase64 = base64.StdEncoding.EncodeToString(r.Feats)//获取提取到的第一张人脸特征
         break
      }
      fmt.Println("提取到的人脸特征为:",faceBase64)
      util.ResponseFormat(c,code.Success,faceBase64)
      return
   } else {
      util.ResponseFormat(c,code.ComError,"未提取到人脸")
   }
}
/*// 对上面的编码结果进行base64解码
@@ -124,6 +142,7 @@
   }
   if tableId != "" && field != "" {
      // 返回特征值  fileInfo["point"] = v.RcFace  fileInfo["feature"] = feat
      /*features := gorun.GetSimpleFaceDetect(picIp+field)  // 特征值     // linux
         if len(features) == 0 {                                               // linux
            return field,nil,errors.New("NotFeatureFindError")  // linux
@@ -134,14 +153,23 @@
      if len(feat) != 2560 {                                // linux
         return field,nil,errors.New("NotFeatureFindError")
      }    */                     // linux
      feat := []byte("hello world") // windows 测试放开
      //将上传的图片交人脸检测和人脸提取,获得特征
      var faceBase64=""
      faceExtArr, err := getFaceFeaFromSdk(file)
      if err ==nil && len(faceExtArr) >0 {
         for _,r := range faceExtArr {
            faceBase64 = base64.StdEncoding.EncodeToString(r.Feats)//获取提取到的第一张人脸特征
            break
         }
      }
      dbperson := new(models.Dbtablepersons)
      dbperson.FaceUrl = picIp+field       //  图片路经
      dbperson.TableId = tableId  //
      dbperson.PersonName = filename // 图片名
      // 演示base64编码
      encodeString := base64.StdEncoding.EncodeToString(feat)
      dbperson.Feature = encodeString // 特征值base64 码
      dbperson.Feature = faceBase64 // 特征值base64 码
      result := addDbPerson(dbperson)
      return field, result, nil
   } else {
@@ -149,6 +177,20 @@
   }
}
func getFaceFeaFromSdk(file multipart.File) ([]*protomsg.ResultFaceExtCom,error){
   s := service.NewFaceSdkService(file)
   i, err := s.ReadFromUploadImg()
   if err !=nil{
      return nil,err
   }
   bc, err := service.ImgCompress(i)
   if err !=nil {
      return nil,err
   }
   s.PushImgMsg(bc)
   return s.GetFaceFea()
}
/**上传方法**/