0
我试图让这个程序将图像保存到我的服务器的一个经典ASP版本:https://github.com/szimek/signature_pad经典ASP和签名板
我试着使用Base64编码输出的各种组合,但都没有成功。我搜索了这个网站和谷歌搜索,但一直没有找到任何有意义的东西。
如果任何人有关于如何将输出从Signature Pad转换为服务器端图像的任何想法,我将不胜感激!
的JS代码:
var wrapper = document.getElementById("signature-pad"),
clearButton = wrapper.querySelector("[data-action=clear]"),
savePNGButton = wrapper.querySelector("[data-action=save-png]"),
saveSVGButton = wrapper.querySelector("[data-action=save-svg]"),
canvas = wrapper.querySelector("canvas"),
signaturePad;
// Adjust canvas coordinate space taking into account pixel ratio,
// to make it look crisp on mobile devices.
// This also causes canvas to be cleared.
function resizeCanvas() {
// When zoomed out to less than 100%, for some very strange reason,
// some browsers report devicePixelRatio as less than 1
// and only part of the canvas is cleared then.
var ratio = Math.max(window.devicePixelRatio || 1, 1);
canvas.width = canvas.offsetWidth * ratio;
canvas.height = canvas.offsetHeight * ratio;
canvas.getContext("2d").scale(ratio, ratio);
}
window.onresize = resizeCanvas;
resizeCanvas();
signaturePad = new SignaturePad(canvas);
clearButton.addEventListener("click", function (event) {
signaturePad.clear();
});
savePNGButton.addEventListener("click", function (event) {
if (signaturePad.isEmpty()) {
alert("Please provide signature first.");
} else {
window.open(signaturePad.toDataURL());
}
});
saveSVGButton.addEventListener("click", function (event) {
if (signaturePad.isEmpty()) {
alert("Please provide signature first.");
} else {
window.open(signaturePad.toDataURL('image/svg+xml'));
}
});
我试图做的是有“savePNGButton”吐出一个实际的PNG文件,我可以保存到使用的是经典ASP的服务器,而不是原始的二进制。
让我们看看你的尝试。对于这样的问题,[mcve]是必不可少的。发布前请检查[问]。 – Lankymart
*“一个服务器端的图像”*,你的意思是原始的二进制数据?从技术上讲,没有像服务器端的“图像”这样的东西,只是代表它的BLOB。如果您将客户端的图像作为Base64编码字符串传递,则需要将该字符串解码为其原始二进制文件,然后将其保存到文件,数据库或保存在内存中。 – Lankymart
这应该有帮助 - [答:Javascript - 发送Signature-Pad结果到Flask](http://stackoverflow.com/a/43105581/692942)。虽然服务器端是瓶颈,但通过AJAX实际发布数据客户端是相关的。 – Lankymart