panlei
2019-06-24 70e3e0ebba3068a2c98f0d13c806c228115374f6
添加了上传图片的工具包
1 文件已重命名
3个文件已修改
66 ■■■■■ 已修改文件
insertdata/insertDataToEs.go 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.go 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
util/common.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
util/upload.go 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
insertdata/insertDataToEs.go
@@ -4,16 +4,18 @@
    "errors"
    "fmt"
    "encoding/json"
    "log"
    "net"
    "time"
    "basic.com/pubsub/protomsg.git"
    "basic.com/dbapi.git"
    "github.com/golang/protobuf/proto"
    "ruleprocess/ruleserver"
    "ruleprocess/util"
    "github.com/golang/protobuf/proto"
    "github.com/satori/go.uuid"
)
var weedfsUrl = "http://192.168.1.182:6333/submit"
// 人脸的数据结构
type PerVideoPicture struct {
    Id              string `json:"id"`
@@ -86,10 +88,10 @@
type AlarmRule struct {
    GroupId    string `json:"groupId"`
    AlarmLevel int32 `json:"alarmLevel"`
    AlarmLevel int32  `json:"alarmLevel"`
    RuleText   string `json:"ruleText"`
}
// 往ES插数据
func InsertToEs(msg ruleserver.ResultMsg) {
    fmt.Println("往ES插数据")
@@ -176,12 +178,22 @@
                    alarmRules = append(alarmRules,AlarmRule{result.RuleGroupId,result.AlarmLevel,result.RuleText})
                }
                isAlarm := ""
                resp := make(map[string]interface{})
                if len(alarmRules) > 0 {
                    isAlarm = "1"
                    // 解压缩并上传图片
                    bdata, err := util.UnCompress(msg.Data)
                    if err != nil {
                        panic("解压缩图片时出现错误")
                    }
                    i := protomsg.Image{}
                    err = proto.Unmarshal(bdata, &i)
                    resp,err = util.PostFormBufferData(weedfsUrl,i.Data,uuid.NewV4().String())
                }else {
                    isAlarm = "0"
                    continue
                    //continue
                }
                log.Println("图片上传返回值:",resp)
                // 查询本机信息
                flag,localConfig := dbapi.SysSetApi{}.GetServerInfo()
                if !flag {
@@ -207,7 +219,7 @@
                    localConfig.ServerName,
                    serverIp,
                    "",
                    "",
                    resp["fileUrl"].(string),
                    time.Now().Format("2006-01-02 15:04:05"),
                    "",
                    isAlarm,
main.go
@@ -4,6 +4,7 @@
    "fmt"
    "ruleprocess/insertdata"
    "ruleprocess/ruleserver"
    "ruleprocess/util"
    "basic.com/pubsub/protomsg.git"
    "basic.com/valib/deliver.git"
@@ -69,7 +70,7 @@
    }
    arg.CameraId = m.Cid
    arg.TaskId = m.Tasklab.Taskid
    bdata, err := UnCompress(m.Data)
    bdata, err := util.UnCompress(m.Data)
    if err != nil {
        panic("解压缩图片时出现错误")
    }
util/common.go
File was renamed from common.go
@@ -1,4 +1,4 @@
package main
package util
import (
    "fmt"
util/upload.go
@@ -5,24 +5,24 @@
    "encoding/json"
    "errors"
    "fmt"
    uuid "github.com/satori/go.uuid"
    "io"
    "log"
    "mime/multipart"
    "net/http"
    "time"
)
var weedfsUri = "http://192.168.1.182:9500/submit"
func PostFormData(uri string) (maps map[string]interface{}, err0 error) {
// 上传图片(二进制流)
func PostFormBufferData(uri string, fileData []byte, fileName string,) (maps map[string]interface{}, err0 error) {
    body := &bytes.Buffer{}
    writer := multipart.NewWriter(body)
    _, err := writer.CreateFormFile("file", uuid.NewV4().String())
    _, err := writer.CreateFormFile("file", fileName)
    if err != nil {
        return nil, err
    }
    boundary := writer.Boundary()
    //close_string := fmt.Sprintf("\r\n--%s--\r\n", boundary)
    close_buf := bytes.NewBufferString(fmt.Sprintf("\r\n--%s--\r\n", boundary))
    file := bytes.NewBuffer(fileData)
    request_reader := io.MultiReader(body, file, close_buf)
    //_, err = io.Copy(part, file)
    //writer.WriteField(key, val)
@@ -51,17 +51,20 @@
        }
    }()
    defer resp.Body.Close()
    body = &bytes.Buffer{}
    _, err = body.ReadFrom(resp.Body)
    if err != nil {
        log.Fatal(err)
    {
        body := &bytes.Buffer{}
        _, err := body.ReadFrom(resp.Body)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println(resp.StatusCode)
        //fmt.Println(resp.Header)
        fmt.Println(body)
        //decoder := json.NewDecoder(strings.NewReader(body.String()))
        decoder := make(map[string]interface{})
        if err := json.Unmarshal([]byte(body.String()), &decoder); err != nil {
            return nil, err
        }
        return decoder, nil
    }
    fmt.Println(resp.StatusCode)
    //fmt.Println(body)
    //decoder := json.NewDecoder(strings.NewReader(body.String()))
    decoder := make(map[string]interface{})
    if err := json.Unmarshal([]byte(body.String()), &decoder); err != nil {
        return nil, err
    }
    return decoder, nil
}
}