| | |
| | | "log" |
| | | "mime/multipart" |
| | | "net/http" |
| | | "path" |
| | | "strconv" |
| | | "strings" |
| | | "time" |
| | | "webserver/extend/code" |
| | | "webserver/extend/config" |
| | | "webserver/extend/esutil" |
| | | "webserver/extend/util" |
| | | "webserver/models" |
| | | "webserver/service" |
| | | |
| | | ) |
| | | |
| | | type FileController struct { |
| | |
| | | |
| | | //var picUrlField = "fid" |
| | | /**上传方法**/ |
| | | var weedfsUri = "http://192.168.1.182:6333/submit" |
| | | |
| | | //var weedfsUri = "http://192.168.1.182:9500/submit" |
| | | |
| | |
| | | // 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) |
| | |
| | | util.ResponseFormat(c, code.ServiceInsideError, result["data"]) |
| | | } |
| | | } else { |
| | | util.ResponseFormat(c, code.Success, field) |
| | | util.ResponseFormat(c, code.Success, fileNameOnly) |
| | | } |
| | | } |
| | | |
| | |
| | | util.ResponseFormat(c, code.RequestParamError, "参数有误") |
| | | return |
| | | } |
| | | |
| | | var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit" |
| | | |
| | | //将上传的图片交人脸检测和人脸提取,获得特征 |
| | | 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 = "" |
| | |
| | | |
| | | //将上传的图片交人脸检测和人脸提取,获得特征 |
| | | 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") |
| | | } |
| | |
| | | break |
| | | } |
| | | } |
| | | var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit" |
| | | //根据人脸坐标扣出人脸小图 |
| | | cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom)) |
| | | fileInfo, e := esutil.PostFormData(weedfsUri, filename, "file", cutFaceImgData) |
| | |
| | | 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 |
| | | |
| | | } |
| | | |
| | |
| | | return |
| | | } |
| | | extNames := make([]string, 0) |
| | | isAllFiald := true |
| | | addResult := make(map[string]interface{}, 0) |
| | | details := make([]string, 0) |
| | | successList := make([]string, 0) |
| | | failList := make([]string,0) |
| | | for _, head := range fileHeaders { |
| | | //文件的名称 |
| | | filename := head.Filename |
| | |
| | | if err != nil { |
| | | log.Fatal(err) |
| | | } |
| | | //data, _ := ioutil.ReadAll(file) |
| | | // weedfs 上传 |
| | | |
| | | field, _, err1 := uploadFileReturnAddr(file, filename, tableId) |
| | | extNames = append(extNames, field) |
| | | if isAllFiald && err1 == nil { |
| | | isAllFiald = false |
| | | } |
| | | //extNames = append(extNames, field) |
| | | |
| | | if err1 != nil { |
| | | if field == "" { |
| | | details = append(details, filename+"上传失败,"+err1.Error()) |
| | | failList = append(failList, filename+"上传失败,"+err1.Error()) |
| | | } else { |
| | | details = append(details, filename+"加入底库失败,"+err1.Error()) |
| | | successList = append(successList, filename+"加入底库失败,"+err1.Error()) |
| | | } |
| | | } |
| | | } |
| | | addResult["isAllFiald"] = isAllFiald |
| | | addResult["successList"] = successList |
| | | addResult["failList"] = failList |
| | | addResult["fields"] = extNames |
| | | addResult["detail"] = details |
| | | //addResult["detail"] = details |
| | | //fields := fdfsclient.UploadFileByBuffer100(bytess, extNames) // fastdfs 上传 |
| | | if !isAllFiald { |
| | | if len(successList)>0 { |
| | | util.ResponseFormat(c, code.Success, addResult) |
| | | } else { |
| | | util.ResponseFormat(c, code.ServiceInsideError, err.Error()) |
| | |
| | | util.ResponseFormat(c, code.UploadFileError, err2.Error()) |
| | | return |
| | | } |
| | | var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit" |
| | | { |
| | | uri := weedfsUri |
| | | fileInfo, e := esutil.PostFormBufferData(uri, filename, "file", uploadData) |