私はPHP/jQuery環境で作業していて、ちょっとしたガイダンスや提案を使用できる問題に遭遇しています。
HTML5キャンバスから画像データをPNGデータとしてエクスポートするために使用しようとしているjQueryコードがあります。これは、画像をファイルとして保存できるように、PHPのimagecreatefrompng()関数にフィードするために使用します。私たちがやろうとしている方法はFFとChromeで機能しますが、IE9はそれほどうまく機能していないようです。(図を参照)
私たちが持っているコードは次のとおりです。
$(document).ready(function() {
function invertCase(inString) {
var outString = "";
for(var i = 0; i < inString.length; ++i) {
var ch = inString.charAt(i);
outString += (ch >= 'A' && ch <= 'Z') ? ch.toLowerCase() : ch.toUpperCase();
}
return outString;
}
$("#sig-canvas").payjunctionSigCap();
$("#draw-sig").click(function() {
var sigVal = $("#signature").val();
if(/^\}[a-z]{8}/m.test(sigVal)) {
sigVal = invertCase(sigVal);
}
$("#sig-canvas").payjunctionSigCap("showScriptel", sigVal);
return false;
});
$("#clear-sig").click(function() {
$("#sig-canvas").payjunctionSigCap("clear");
$("#signature").val("");
return false;
});
$("#signed").click(function() {
var canvas1 = $("#sig-canvas-canvas");
$("#data").val( canvas1.toDataURL("image/png") );
});
});
結果のデータがPHPのラップに戻ったときに得られるものは次のとおりです。
Warning: imagecreatefrompng(): '/var/www/vhosts/<siteroot>/eSignatures/00Qd000000GzpsLEAR.png' is not a valid PNG file in /var/www/vhosts/<siteroot>/SigPad.php on line 24
Warning: imagepng() expects parameter 1 to be resource, boolean given in /var/www/vhosts/<siteroot>/SigPad.php on line 26
Warning: imagedestroy() expects parameter 1 to be resource, boolean given in /var/www/vhosts/<siteroot>/SigPad.php on line 27
IE9がデータを台無しにしているデータに対して何かしていることはありますか?また、console.log(imgData)のように生成されているデータをIEに表示させる方法はありますか?