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