Next.js API 路由中的正文超过 1mb 限制错误

Body exceeded 1mb limit error in Next.js API route

如果我在 Next.js 上使用 FormData 将图像上传到服务器,我总是会收到此错误。

我尝试了很多,但我没有解决这个问题。

我的代码:

const changeValue = (e) => {
if (e.target.name === "avatar") {
      const file = e.target.files[0];
      const formData = new FormData();
      formData.append("image", file, file.name);
      try {
        const config = {
          Headers: {
            "Content-Type": "multipart/form-data",
          },
        };
        axios
          .post("/api/upload", formData, config)
          .then((res) => {
            setAvatar(res.data);
            setAvatarPreview(res.data);
          })
          .catch((err) => {
            console.log(err.message);
          });
      } catch (err) {
        console.log(err);
      }
    } 
}

正文解析器的默认大小限制是 API 路由中的 1mb。您可以通过从 API 路由导出的 custom config object 修改此值。

// /pages/api/upload.js

export const config = {
    api: {
        bodyParser: {
            sizeLimit: '4mb' // Set desired value here
        }
    }
}

请注意,API 路由正文大小有限制,详情请参阅