From 00c6fb6a7196832f46bbce513b58bc6d9a3c9fa5 Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期二, 23 七月 2019 19:29:03 +0800 Subject: [PATCH] add permissions --- controllers/fileController.go | 119 +++++++++++++++++++++++++++++------------------------------ 1 files changed, 58 insertions(+), 61 deletions(-) diff --git a/controllers/fileController.go b/controllers/fileController.go index 868bd7a..a5bc403 100644 --- a/controllers/fileController.go +++ b/controllers/fileController.go @@ -2,6 +2,7 @@ import ( "basic.com/pubsub/protomsg.git" + "basic.com/fileServer/WeedFSClient.git" "bytes" "encoding/base64" "errors" @@ -14,13 +15,16 @@ "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 { @@ -34,7 +38,6 @@ //var picUrlField = "fid" /**涓婁紶鏂规硶**/ -var weedfsUri = "http://192.168.1.182:6333/submit" //var weedfsUri = "http://192.168.1.182:9500/submit" @@ -71,7 +74,7 @@ // 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) @@ -87,7 +90,7 @@ util.ResponseFormat(c, code.ServiceInsideError, result["data"]) } } else { - util.ResponseFormat(c, code.Success, field) + util.ResponseFormat(c, code.Success, fileNameOnly) } } @@ -99,35 +102,27 @@ util.ResponseFormat(c, code.RequestParamError, "鍙傛暟鏈夎") return } - + var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit" //灏嗕笂浼犵殑鍥剧墖浜や汉鑴告娴嬪拰浜鸿劯鎻愬彇锛岃幏寰楃壒寰� fileBytes, _ := ioutil.ReadAll(file) - faceExtArr, err, pI := getFaceFeaFromSdk(fileBytes) - if err ==nil && len(faceExtArr) >0 { + faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes, time.Second*5) + if err ==nil && len(faceArr) >0 { var faceBase64= "" - var field = "" var rcFace *protomsg.Rect - for _,r := range faceExtArr { - rcFace = r.Pos.Pos.RcFace + for _,r := range faceArr { + rcFace = r.Pos.RcFace faceBase64 = base64.StdEncoding.EncodeToString(r.Feats)//鑾峰彇鎻愬彇鍒扮殑绗竴寮犱汉鑴哥壒寰� break } //鏍规嵁浜鸿劯鍧愭爣鎵e嚭浜鸿劯灏忓浘 cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom)) - fileInfo, e := esutil.PostFormData(weedfsUri, "娴嬭瘯浜鸿劯鍒囧浘", "file", cutFaceImgData) - if e != nil { - fmt.Println(e.Error()) - + weedFilePath, e := WeedFSClient.UploadFile(weedfsUri, "testCutFace", cutFaceImgData) + if e !=nil{ + util.ResponseFormat(c,code.ComError,"鏂囦欢涓婁紶澶辫触") } else { - field = fileInfo[picUrlField].(string) // 鏂囦欢璺緞 + util.ResponseFormat(c,code.Success,weedFilePath + ";" + faceBase64) } - if strings.Contains(field,"/"){ - idx := strings.Index(field, "/") - field = field[idx+1:] - } - fmt.Println("field:",field) - util.ResponseFormat(c,code.Success,field + ";" + faceBase64) } else { util.ResponseFormat(c,code.ComError,"鏈彁鍙栧埌浜鸿劯") } @@ -150,20 +145,21 @@ //灏嗕笂浼犵殑鍥剧墖浜や汉鑴告娴嬪拰浜鸿劯鎻愬彇锛岃幏寰楃壒寰� var faceBase64="" - faceExtArr, err,pI := getFaceFeaFromSdk(fileBytes) - if faceExtArr ==nil { + faceArr, err, pI := service.GetFaceFeaFromSdk(fileBytes, time.Second*5) + if faceArr ==nil { return "",nil,errors.New("NotFeatureFindError") } var rcFace *protomsg.Rect - if err ==nil && len(faceExtArr) >0 { - for _,r := range faceExtArr { + if err ==nil && len(faceArr) >0 { + for _,r := range faceArr { //鎷垮埌浜鸿劯鐨勫潗鏍� - rcFace = r.Pos.Pos.RcFace + rcFace = r.Pos.RcFace faceBase64 = base64.StdEncoding.EncodeToString(r.Feats)//鑾峰彇鎻愬彇鍒扮殑绗竴寮犱汉鑴哥壒寰� break } } + var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit" //鏍规嵁浜鸿劯鍧愭爣鎵e嚭浜鸿劯灏忓浘 cutFaceImgData := util.SubImg(*pI, int(rcFace.Left), int(rcFace.Top), int(rcFace.Right), int(rcFace.Bottom)) fileInfo, e := esutil.PostFormData(weedfsUri, filename, "file", cutFaceImgData) @@ -178,40 +174,42 @@ 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 // 鐗瑰緛鍊糱ase64 鐮� result := addDbPerson(dbperson) - return field, result, nil + return fileNameOnly, result, nil } -func getFaceFeaFromSdk(fileBytes []byte) ([]*protomsg.ResultFaceExtCom,error,*protomsg.Image){ - s := service.NewFaceSdkService(fileBytes) - i, err := s.ReadFromUploadImg() - if err !=nil{ - fmt.Println("readFromUploadImg err:",err) - return nil,err,i - } - bc, err := service.ImgCompress(i) - if err !=nil { - fmt.Println("ImgCompress err:",err) - return nil,err,i - } - s.PushImgMsg(bc) - s.GetFaceFea() - if s.Result == nil{ - return nil,errors.New("no fea"),i - } else { - return s.Result,nil,i - } -} +//func getFaceFeaFromSdk(fileBytes []byte) ([]*protomsg.ResultFaceExtCom,error,*protomsg.Image){ +// s := service.NewFaceSdkService(fileBytes) +// i, err := s.ReadFromUploadImg() +// if err !=nil{ +// fmt.Println("readFromUploadImg err:",err) +// return nil,err,i +// } +// bc, err := service.ImgCompress(i) +// if err !=nil { +// fmt.Println("ImgCompress err:",err) +// return nil,err,i +// } +// s.PushImgMsg(bc) +// s.GetFaceFea() +// if s.Result == nil{ +// return nil,errors.New("no fea"),i +// } else { +// return s.Result,nil,i +// } +//} /**涓婁紶鏂规硶**/ @@ -236,9 +234,9 @@ 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 @@ -247,26 +245,24 @@ 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()) @@ -312,6 +308,7 @@ 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) -- Gitblit v1.8.0