sunty
2019-07-02 c4ab4a96dfdd097d0faedd14f10b93b18786101d
controllers/fileController.go
@@ -10,9 +10,11 @@
   "github.com/satori/go.uuid"
   "image"
   "image/jpeg"
   "io/ioutil"
   "log"
   "mime/multipart"
   "net/http"
   "strings"
   "webserver/extend/code"
   "webserver/extend/esutil"
   "webserver/extend/util"
@@ -32,9 +34,9 @@
//var picUrlField = "fid"
/**上传方法**/
//var weedfsUri = "http://192.168.1.182:6333/submit"
var weedfsUri = "http://192.168.1.182:6333/submit"
var weedfsUri = "http://192.168.1.182:9500/submit"
//var weedfsUri = "http://192.168.1.182:9500/submit"
// @Summary 依据图片添加底库人员
// @Description  依据图片添加底库返回数据人员
@@ -100,8 +102,8 @@
   //将上传的图片交人脸检测和人脸提取,获得特征
   faceExtArr, err := getFaceFeaFromSdk(file)
   fileBytes, _ := ioutil.ReadAll(file)
   faceExtArr, err := getFaceFeaFromSdk(fileBytes)
   if err ==nil && len(faceExtArr) >0 {
      var faceBase64= ""
      for _,r := range faceExtArr {
@@ -125,16 +127,19 @@
   defer file.Close()
   field := ""
   // weedfs 上传
   {
      fileInfo, e := esutil.PostFormData(weedfsUri, filename, "file", file)
      if e != nil {
         fmt.Println(e.Error())
         return "", nil, e
      } else {
         field = fileInfo[picUrlField].(string) // 文件路径
      }
   fileBytes, err := ioutil.ReadAll(file)
   if err !=nil {
      return "",nil,err
   }
   if tableId != "" && field != "" {
   fileInfo, e := esutil.PostFormData(weedfsUri, filename, "file", fileBytes)
   if e != nil {
      fmt.Println(e.Error())
      return "", nil, e
   } else {
      field = fileInfo[picUrlField].(string) // 文件路径
   }
   if field != "" {
      // 返回特征值  fileInfo["point"] = v.RcFace  fileInfo["feature"] = feat
      /*features := gorun.GetSimpleFaceDetect(picIp+field)  // 特征值     // linux
@@ -148,10 +153,20 @@
         return field,nil,errors.New("NotFeatureFindError")
      }    */                     // linux
      if strings.Contains(field,"/"){
         idx := strings.Index(field, "/")
         field = field[idx+1:]
      }
      fmt.Println("field:",field)
      //imgB, _ := ioutil.ReadAll(file)
      //fmt.Println("img.length:",len(imgB))
      //将上传的图片交人脸检测和人脸提取,获得特征
      var faceBase64=""
      faceExtArr, err := getFaceFeaFromSdk(file)
      faceExtArr, err := getFaceFeaFromSdk(fileBytes)
      if faceExtArr ==nil {
         return "",nil,errors.New("NotFeatureFindError")
      }
      if err ==nil && len(faceExtArr) >0 {
         for _,r := range faceExtArr {
            faceBase64 = base64.StdEncoding.EncodeToString(r.Feats)//获取提取到的第一张人脸特征
@@ -161,7 +176,7 @@
      dbperson := new(models.Dbtablepersons)
      dbperson.FaceFeature = picIp + field //  图片路经
      dbperson.PersonPicUrl = field //  图片路经
      dbperson.TableId = tableId           //
      dbperson.PersonName = filename       // 图片名
      // 演示base64编码
@@ -175,8 +190,8 @@
   }
}
func getFaceFeaFromSdk(file multipart.File) ([]*protomsg.ResultFaceExtCom,error){
   s := service.NewFaceSdkService(file)
func getFaceFeaFromSdk(fileBytes []byte) ([]*protomsg.ResultFaceExtCom,error){
   s := service.NewFaceSdkService(fileBytes)
   i, err := s.ReadFromUploadImg()
   if err !=nil{
      fmt.Println("readFromUploadImg err:",err)
@@ -256,6 +271,14 @@
   }
}
type EsPersonSave struct {
   FaceFeature string `json:"faceFeature"`
   TableId string `json:"tableId"`
   Id string `json:"id"`
   PersonPicUrl string `json:"personPicUrl"`
   IdCard string `json:"idCard"`
}
// @Summary 上传图片 并切图
// @Description  上传图片 并切图
// @Accept  mpfd
@@ -263,8 +286,8 @@
// @Tags dbperson 底库人员
// @Param file formData file true "底库人员图片"
// @Param tableId formData string false "底库id,有id 则加入底库,无则只上传图片"
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true}"
// @Failure 500 {string} json "{"code":500,  msg:"返回错误信息", success:false}"
// @Success 200 {string} json "{"code":200, msg:"目录结构数据", success:true, data:""}"
// @Failure 500 {string} json "{"code":500,  msg:"返回错误信息", success:false, data:""}"
// @Router /data/api-v/es/ImageUploadReturnPics [POST]
func (fc FileController) ImageUploadReturnPics(c *gin.Context) {
   //得到上传的文件
@@ -276,9 +299,9 @@
   }
   //文件的名称
   filename := header.Filename
   fmt.Println(file, err, filename)
   defer file.Close()
   field := ""
   // weedfs 上传
   uploadData := make([]byte, header.Size)
   i, err2 := file.ReadAt(uploadData, 0)
@@ -301,7 +324,7 @@
   // fileInfo["point"] = v.RcFace   // 返回特征值
   //   fileInfo["feature"] = feat
   //features := gorun.GetSimpleFaceDetect(picIp + "/" + field) // 特征值  只在linux 下
   //feat := []byte("hello world")           // windows 测试放开
   result := make(map[string]interface{}, 0)
   result["uploadImage"] = picIp + field
   smUrl := make([]string, 0)