我正在尝试访问发布到用 Gin (golang) 编写的 API 的文件和值数组。我有一个函数,它需要一个文件,高度和宽度。然后调用函数来调整文件大小,然后将其上传到 S3。但是,我还尝试上传多个文件。func (rc *ResizeController) Resize(c *gin.Context) { file, header, err := c.Request.FormFile("file") filename := header.Filename if err != nil { log.Fatal(err) } height := c.PostForm("height") width := c.PostForm("width") finalFile := rc.Crop(height, width, file) go rc.Upload(filename, finalFile, "image/jpeg", s3.BucketOwnerFull) c.JSON(200, gin.H{"filename": filename})}我在文档中的任何地方都看不到如何以以下格式访问数据:item[0]fileitem[0]widthitem[0]heightitem[1]fileitem[1]widthitem[1]height等等。我想出了一些事情:for index, element := range c.Request.PostForm("item") { fmt.Println(element.Height)}但这抛出了“c.Request.Values 未定义(类型 *http.Request 没有字段或方法值)”
1 回答
呼如林
TA贡献1798条经验 获得超3个赞
您可以File直接访问切片,而不是使用FormFileon的方法Request。假设您有一个表单数组width,height它对应于文件上传的顺序。
if err := ctx.Request.ParseMultipartForm(32 << 20); err != nil {
// handle error
}
for i, fh := range ctx.Request.MultipartForm.File["item"] {
// access file header using fh
w := ctx.Request.MultipartForm.Value["width"][i]
h := ctx.Request.MultipartForm.Value["height"][i]
}
在FormFile对方法Request仅仅是围绕着包装MultipartForm.File传回了那个关键的第一个文件。
- 1 回答
- 0 关注
- 730 浏览
添加回答
举报
0/150
提交
取消