.callFinal 错误中的意外结束

问题描述 投票:0回答:0

我正在尝试使用 axios 发送一个新的 FormData() 作为 POST 请求的主体,在本地它可以正常工作但在我们的实时环境中我不断收到

Unexpected end of form at .callFinal
。内容类型似乎是具有设置边界的预期
multipart/form-data
。但它仍然给出了这个错误。

关于什么会导致这个的任何想法?

这是 api 调用:

export const uploadFiles = async {
    formData: FormData;
    groupId:string
) => {
    try {
        const res = await axios({
            method: "post",
            url: `${EnvironmentUtils.getBaseUrl()}/files/upload`,
            params: {
                groupId,
            },
            data: formData,
            headers: {
                ApiKey: EnvironmentUtils.getApiKey(),
            },
            withCredentials: true,
    } catch (err) {
        const publicErrMsg = err?.response?.data?.message;
        throw new Error(
            `Error when uploading file: ${publicErrMsg || err.message}`,
        );
    }
};

这是将数据附加到 formData 的地方:

const upload = useCallback(
        async (files: FileList) => {
            const formData = new FormData();
            formData.append("filesData", files[0]);
            formData.append("folderPath", btoa(selectedFolderPath || ""));
            formData.append("friendlyName", files[0].name);
            try {
                const res = await uploadFiles(
                    formData,
                    groupId
                );

在后端我收到它作为:


export const upload = Multer({
    storage: Multer.memoryStorage(),
    limits: {
        fileSize:
            FirebaseUtils.getEnvironmentVar("multer.max.file_size") ||
            10 * 1024 * 1024, // No larger than 10mb
        fieldSize:
            FirebaseUtils.getEnvironmentVar("multer.max.field_size") ||
            10 * 1024 * 1024, // No larger than 10mb
    },
});

控制器:

app.post(
    "/files/upload",
    authManager,
    MulterMiddleware.upload.single("filesData"),
    Controller.handlePostFileUploads,
);

然后在

req.file
中从
handlePostFileUploads

获取文件数据

我认为问题可能出在 Multer 中间件方面,但我不确定我遗漏了什么

在我的服务器中,我有以下设置:

Server.js

const express = require("express")();
express.use(bodyParser.json());

javascript node.js multipartform-data multer
© www.soinside.com 2019 - 2024. All rights reserved.