c# – HTML5 Canvas toDataURL(“image / png”)适用于某些绘画,
我正在使用asp.net 4(c#).
我在 Html 5画布上有一个绘图应用程序,能够添加图像和绘制多种颜色. 我想保存图片drawen到.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") %>'; } }); } 问题是,如果我在画布上绘制一个简单的绘图(某些线条或一个小圆圈),它就会完美无缺. 如果我画一个“复杂”的图像(不是很复杂!只是一个不同颜色的划痕)或添加2,3张图章它不起作用. WebMethod根本没有被调用,即使我等了很长时间. 我认为它必须对图像的大小做一些事情.似乎如果数据的最终大小减去80 kb(这是我能够保存的图像的最大尺寸)那么它可以工作,但如果预期的图像将比这大,我有一个问题. 这是我得到的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 这个问题的原因是什么,我该如何解决? 解决方法
正如我在评论中所述,我不是ASP / Windows的人 – 我相信这里的其他人可以澄清,但从我在网上看到的内容,您需要在服务器上执行以下操作:
Add the following to your web.config or mod the settings in the machine.config <system.web> <httpRuntime maxRequestLength="XXXXXX" /> </system.web> 以上应该改变任何请求允许的最大大小,我认为XXXXX值需要以字节为单位给出.现在,这是否是唯一需要更改的配置设置还有待观察. PHP有两个设置需要根据上传和后限制进行更改. 编辑 要更改maxJsonLength,您需要将以下内容添加到服务器上的web.config文件中: <system.web.extensions> <scripting> <webServices> <jsonSerialization maxJsonLength="5000000"> </jsonSerialization> </webServices> </scripting> </system.web.extensions> 我无法找到默认的maxJsonLength是什么,有人说它是2097152个字符,有些人说102400个字符……无论哪个,5000000应该足够了:) 以下内容可用于查找maxJsonLength当前的内容: Confusion over maxJsonLength default value (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |