1

我在前端使用以下代码上传图像并对其进行裁剪,然后将其发送到使用 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一起使用吗?

4

0 回答 0