asp.net 4 (c#) を使用しています。Html 5キャンバスに描画アプリがあり、画像を追加したり、多くの色で描画したりできます。描画した画像を.pngファイルに保存したいと思います。そのために、WebMethod を作成しました。
[WebMethod(EnableSession = true)]
public static void UploadImage(string imageData,string name)
{
System.Diagnostics.Debug.WriteLine("here friend!");
}
これで、ページにボタンができました。JavaScript を使用してこのメソッドを呼び出します。
function trySend()
{
var image = document.getElementById("drawCanvas").toDataURL("image/png");
image = image.replace('data:image/png;base64,', '');
var name = document.getElementById("userName").value;
$.ajax(
{
type: 'POST',
url: 'CanvasSave.aspx/UploadImage',
data: '{ "imageData" : "' + image + '" ' + ', "name" : "' + name + '"}',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (msg) {
location.href = '<%= Page.ResolveUrl("~/ShowCards.aspx") %>';
}
});
}
問題は、キャンバスに簡単な絵(いくつかの線または小さな円)を描くと、完全に機能することです。「スタンプ」(画像)が1つあったとしても、それでも機能します。
「複雑な」画像を描いたり(実際には複雑ではありません!さまざまな色のスクラッチだけです)、2、3個のスタンプを追加したりしても機能しません。しばらく待っても、WebMethod はまったく呼び出されません。
画像のサイズで何かをしなければならないと思います。データの最終サイズが 80 kb (これは保存できた画像の最大サイズ) 未満の場合は機能するようですが、意図した画像がこれよりも大きくなると問題が発生します。繰り返しますが、すべての問題は C# コードではなく JS にあります。
これは私が得る JavaScript エラーです:
POST http://localhost:53751/CanvasSave.aspx/UploadImage 500 (Internal Server Error)
jquery.min.js:4
f.support.ajax.f.ajaxTransport.send jquery.min.js:4
f.extend.ajax jquery.min.js:4
trySend Default.aspx:21
onclick
この問題の原因は何ですか?どうすれば修正できますか?