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

Raw*_*122 25 javascript file-upload multipartform-data node.js next.js

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

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

我的代码:

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);
      }
    } 
}
Run Code Online (Sandbox Code Playgroud)

jul*_*ves 48

page路由器中的API路由

正文解析器的默认大小限制1mb位于 API 路由中。您可以通过从 API 路由导出的自定义config对象来修改此值。

// /pages/api/upload.js

export const config = {
    api: {
        bodyParser: {
            sizeLimit: '2mb' // Set desired value here
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,API 路由正文大小有限制,请参阅如何覆盖 4mb API 路由正文大小限制?了解详情。


app路由器中的服务器操作

相同的默认大小限制1mb也适用于服务器操作。serverActions.bodySizeLimit您可以使用中的选项修改该值next.config.js

// next.config.js

module.exports = {
    serverActions: {
        bodySizeLimit: '2mb' // Set desired value here
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这对我不起作用。nextjs 版本:13.2.4 (3认同)
  • @ManjunathGk 上述解决方案适用于“pages” API 路由。Next.js 13 中引入的新“app”路由器似乎不支持它。请参阅 https://nextjs.org/docs/app/building-your-application/routing/router-handlers。 (2认同)