意外结束"/>
.callFinal 错误中的意外结束
我正在尝试使用 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());
回答如下:
更多推荐
.callFinal 错误中的意外结束
发布评论