我在前端使用以下代码上传图像并对其进行裁剪,然后将其发送到使用 ExpressJs 和 Multer 中间件编码的后端。我正在使用 CroppieJs 库来裁剪图像。
$('.croppie-upload').on('click', function (ev) {
croppieDemo.croppie('result', {
type: 'canvas',
size: 'viewport'
}).then(function (image) {
var imageBlob = image.split(",");
console.log(imageBlob);
var body = {
sessionUserName: sessionStorage.getItem("userName"),
profileImage : imageBlob[1]
};
fetch(instanceUrl + "/user_credentials/upload", {
method: "PATCH", // POST, PUT, DELETE, etc.
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(body),
})
.then((response) => {
if (response.status == 200) {
response.json().then((data) => {
if (data.updated === true) {
doInit();
alert("Saved Successfully!");
}
});
}
})
.catch((err) => {});
});
});
据我所知,问题是 Multer 接受 multipart/formdata 编码,而 Croppie JS 提供了 Base64 编码的字符串。Express 抛出实体太大的错误。有人可以告诉我如何将croppie js与multer一起使用吗?