首页 > 解决方案 > 尝试检测 multipart/form-data 请求中是否存在多个文件,并拒绝多个附件

问题描述

我正在使用 Go 构建一个 API,该 API 需要存储一个以多部分表单请求发送的文件。如果附加了多个文件,并且这些文件没有附加键值,它也需要返回错误。我遇到了一个问题,即多部分阅读器的部分在迭代时发生变化。所以我可以成功上传第一个文件但不返回错误,或者它在需要时返回错误,但是当一个有效的请求进来时——它会遍历它并且什么都不上传。

我写了几个for循环来尝试这个,有些没有。

i := 0
var data io.Reader
for part, err := reader.NextPart(); err != io.EOF; part, err := reader.NextPart() {
    i++
    data = part
}
if i > 1 {
    return nil, errors.New("too many files")
}

req := storeRequest{
   Data:      data,
   FileNAme:  r.URL.Path,
}

return req, nil

关于我如何处理这个问题的任何建议?提前致谢。

标签: goiomultipartform-data

解决方案


推荐阅读