liuxiaolong
2019-06-29 075988e5e4325c40413103f7b177f1ee30eaa6fe
controllers/fileController.go
@@ -4,6 +4,7 @@
   "basic.com/pubsub/protomsg.git"
   "bytes"
   "encoding/base64"
   "errors"
   "fmt"
   "github.com/gin-gonic/gin"
   "github.com/satori/go.uuid"
@@ -17,6 +18,7 @@
   "webserver/extend/util"
   "webserver/models"
   "webserver/service"
)
type FileController struct {
@@ -86,38 +88,30 @@
      util.ResponseFormat(c, code.Success, field)
   }
}
// @Description 人员照片上传并获取特征值
// @Router /data/api-v/dbperson/fileUploadTest [POST]
func (controller FileController) UploadPersonTest(c *gin.Context){
   file, header, err := c.Request.FormFile("file") //image这个是uplaodify参数定义中的   'fileObjName':'image'
func (controller FileController) UploadPersonTest(c *gin.Context) {
   file, _, err := c.Request.FormFile("file") //image这个是uplaodify参数定义中的   'fileObjName':'image'
   if err != nil {
      util.ResponseFormat(c,code.RequestParamError,"参数有误")
      util.ResponseFormat(c, code.RequestParamError, "参数有误")
      return
   }
   //文件的名称
   filename := header.Filename
   fmt.Println(file, err, filename)
   if err != nil {
      log.Fatal(err)
      filename = uuid.NewV4().String()
   }
   //将上传的图片交人脸检测和人脸提取,获得特征
   var faceBase64=""
   faceExtArr, err := getFaceFeaFromSdk(file)
   if err ==nil && len(faceExtArr) >0 {
      var faceBase64= ""
      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解码
@@ -152,6 +146,7 @@
         feat := features[0]["feature"].([]byte)   // linux
      if len(feat) != 2560 {                                // linux
         return field,nil,errors.New("NotFeatureFindError")
      }    */                     // linux
      //将上传的图片交人脸检测和人脸提取,获得特征
@@ -164,12 +159,15 @@
         }
      }
      dbperson := new(models.Dbtablepersons)
      dbperson.FaceUrl = picIp+field       //  图片路经
      dbperson.TableId = tableId  //
      dbperson.PersonName = filename // 图片名
      dbperson.FaceFeature = picIp + field //  图片路经
      dbperson.TableId = tableId           //
      dbperson.PersonName = filename       // 图片名
      // 演示base64编码
      dbperson.Feature = faceBase64 // 特征值base64 码
      dbperson.FaceFeature = faceBase64 // 特征值base64 码
      result := addDbPerson(dbperson)
      return field, result, nil
   } else {
@@ -181,18 +179,24 @@
   s := service.NewFaceSdkService(file)
   i, err := s.ReadFromUploadImg()
   if err !=nil{
      fmt.Println("readFromUploadImg err:",err)
      return nil,err
   }
   bc, err := service.ImgCompress(i)
   if err !=nil {
      fmt.Println("ImgCompress err:",err)
      return nil,err
   }
   s.PushImgMsg(bc)
   return s.GetFaceFea()
   s.GetFaceFea()
   if s.Result == nil{
      return nil,errors.New("no fea")
   } else {
      return s.Result,nil
   }
}
/**上传方法**/
// @Summary 批量添加底库人员
// @Description  依据图片批量添加底库人员
@@ -299,7 +303,7 @@
   //features := gorun.GetSimpleFaceDetect(picIp + "/" + field) // 特征值  只在linux 下
   //feat := []byte("hello world")           // windows 测试放开
   result := make(map[string]interface{}, 0)
   result["uploadImage"] = picIp+field
   result["uploadImage"] = picIp + field
   smUrl := make([]string, 0)
   //for _, feature := range features {         // linux
   // 获取图片