从 Javascript 上传文件并通过 Go 接收文件时遇到问题

Having trouble uploading files from Javascript and receiving it through Go

我使用 Axios 在 JavaScript 中设置了一个简单的前端服务。该服务获取文件列表并使用 post 请求发送到我的服务器代码。我的 JavaScript 看起来像这样

const testPost = async (files) => {
  let formData = new FormData();

  files.forEach((file) => {
    formData.append("file", file);
  });

  const res = await axios({
    method: "POST",
    url: baseUrl,
    data: formData,
    headers: {
      "Content-Type": "multipart/form-data",
    },
  });

  return res;
};

我的 Go 代码如下所示:

func (h *SendHandler) TestPost(w http.ResponseWriter, r *http.Request) {
    //Allow CORS here By * or specific origin
    w.Header().Set("Access-Control-Allow-Origin", "*")
    w.Header().Set("Access-Control-Allow-Headers", "Content-Type")

    formdata := r.MultipartForm
    fmt.Println(formdata)
}

我认为我的问题出在 Go 中的 TestPost 函数主体,因为我在前端代码中单击“发送”,收到了响应。在我的 Go 函数中,当我打印我的表单数据时,它输出 <nil>。我希望能够访问列表中的每个文件,但我什至无法访问表单数据。我对 web dev 和 Go 仍然是新手,所以我在这里肯定有一些误解。有什么指点吗?

documentation for MultipartForm 说:

MultipartForm is the parsed multipart form, including file uploads. This field is only available after ParseMultipartForm is called.

在使用 r.MultipartForm 之前调用 ParseMultipartForm 进行修复。

err := r.ParseMultipartForm(maxMemory)
if err != nil {
    http.Error(w, "Bad Request", http.StatusBadRequest)
    return
}
// r.MultipartForm is now set.
fmt.Println(r.MultipartForm)  // does not print nil