无法通过使用唯一的json ID在Golang中打开图片?

时间:2019-12-19 06:14:31

标签: json image go

type imageDimensionRequest struct {
    ID1 string `json:"id"`
}

// ImageDimension returns image dimenson
func ImageDimension(c *gin.Context) {
    var requestBody = imageDimensionRequest{}
    c.Bind(&requestBody)

    var path = fmt.Sprintf("saved/%v.jpg", requestBody.ID1)
    W, H := getImageDimension(path)
    c.JSON(http.StatusOK, gin.H{
        "STATUS":   "OK",
        "ID":       requestBody.ID1,
        "filepath": path,
        "Width":    W,
        "Height":   H,
    })
}

当我提供“ ID1” JSON输入时,总是出现以下错误

  

'打开保存的文件/.jpg:没有这样的文件或目录   保存/.jpg:图片:未知格式”

我确实有一个“保存”目录,并且输入的ID是正确的,但仍然无法获取图像尺寸。 JSON输出是

{
    "Height": 0,
    "ID": "",
    "STATUS": "OK",
    "Width": 0,
    "filepath": "saved/.jpg"
}

我已经导入了图像包

  

“图像”“图像/ gif”   _“ image / gif”“ image / jpeg”   _“ image / jpeg”“ image / png”   _“ image / png”

并编写了一个init函数。

有人可以告诉我可能的原因和解决方案吗?如果我错过了任何内容,或者过分强调或强调了一点,请在评论中告诉我。

1 个答案:

答案 0 :(得分:-2)

此程序的结构字段中有一个警告。

所以我将结构改写为

type imageDimensionRequest struct {
    IMAGE string `json:"Image Id"`
}

JSON输出为

c.JSON(http.StatusOK, gin.H{
        "Image Id": requestBody.IMAGE,
        "Width":    W,
        "Height":   H,
        "STATUS":   "OK",
    })

从而清除所有显示的警告。

JSON主体写为

{
    "Image Id":"5462b38d-cfc4-4ac4-8eab-486ba63f3b04"
}

这提供了所需的输出。