我试图使这一功能时,用户可以上传简历和他的图像.
然而,每当我try 同时将两者发送到后端时,我都会收到错误请求错误400.我试着改变一些东西,但我似乎就是弄不明白为什么我上传了图片或简历,同时 comments 了第一个,或者后一个,当我分开做的时候,它运行得很好.
以下是我的后端代码:
@Post('signup')
@UseInterceptors(FileInterceptor('cv'), FileInterceptor('avatarImage'))
async signUp(
@Body() signupDto: SignupDto,
@UploadedFile() cv: Express.Multer.File,
@UploadedFile() avatarImage: Express.Multer.File,
): Promise<any> {
if (!cv) {
throw new Error('CV file is required.');
}
signupDto.cvFileName = cv.originalname;
signupDto.cvFileBuffer = cv.buffer;
signupDto.cv = await this.fileUploadService.uploadFileCv(
signupDto.cvFileName,
signupDto.cvFileBuffer,
);
if (!avatarImage) {
throw new Error('Avatar Image is required');
}
signupDto.avatarImageName = avatarImage.originalname;
signupDto.avatarImageFileBuffer = avatarImage.buffer;
signupDto.avatarImage = await this.fileUploadService.uploadImage(
signupDto.avatarImageName,
signupDto.avatarImageFileBuffer,
);
return this.userService.createUser(signupDto);
}
我可以分开寄,但不能同时寄. 此外,我还提供了获取逻辑的片段.
const handleRegistration = async (event: FormEvent<HTMLFormElement>) => {
event.preventDefault();
const formData = new FormData();
if (selectedCvFile.length > 0) {
formData.append("cv", selectedCvFile[0] || "");
}
if (selectedImagesForAvatar.length > 0) {
formData.append("avatarImage", selectedImagesForAvatar[0] || "");
}
formData.append("username", formState.username || "");
formData.append("firstName", formState.firstName || "");
formData.append("lastName", formState.lastName || "");
formData.append("password", formState.password || "");
formData.append("email", formState.email || "");
formData.append("phoneNumber", formState.phoneNumber || "");
formData.append("address", formState.address || "");
formData.append("city", formState.city || "");
formData.append("role", formState.role || "");
dispatch({ type: "CLEAR_ALERTS" });
try {
const response = await fetch("http://localhost:3000/auth/signup", {
method: "POST",
body: formData,
});
const data = await response.json();
if (response.ok) {
dispatch({
type: "SHOW_SUCCESS",
payload: `You have registered correctly !`,
});
console.log(data);
localStorage.setItem("token", data.accessToken);
} else {
dispatch({ type: "SHOW_ERROR", payload: response.statusText });
console.error("Registration failed:", response.statusText, response);
// Handle failed registration, e.g., show an error message
}
} catch (error) {
console.error("Error during registration:", error);
// Handle any other errors that may occur during registration
}
};
如果您知道我可以做些什么来让它工作,请执行以下操作:)
谢谢