我想发送用户从他们的计算机中选择的图像以及包装在JSON对象中并发送到服务器的表单数据。我正在使用Node作为服务器。是否可以将图像与其他表单元素一起放置在JSON对象中并在Node中读取?

最佳答案

我遇到的常见方法是使用Base64字符串方法:将图像编码为Base64字符串,并将其设置为发送到服务器的JSON对象的一部分。

另一种方法似乎是在JSON中使用Binary Data,但我之前从未尝试过这样做,因此没有太多信息。

Here's一个代码示例,可使用Javascript执行Base64编码。具体找下面的方法

function getBase64Image(imgElem) {
// imgElem must be on the same server otherwise a cross-origin error will be thrown "SECURITY_ERR: DOM Exception 18"
    var canvas = document.createElement("canvas");
    canvas.width = imgElem.clientWidth;
    canvas.height = imgElem.clientHeight;
    var ctx = canvas.getContext("2d");
    ctx.drawImage(imgElem, 0, 0);
    var dataURL = canvas.toDataURL("image/png");
    return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}

10-05 20:45
查看更多