我尝试将画布数据作为图像发送,但是当图像很大时,它不发送数据,所以我尝试发送作为表单数据,但我仍然坚持接收代码。代码隐藏作为htmlinputelementobject接收。我该怎么收到它?有人可以帮忙。
HTML:
var data = canvas.toDataURL("image/png");
data = data.substr(data.indexOf(',') + 1).toString();
var dataInput = document.createElement("input");
dataInput.setAttribute("name", "imgdata");
dataInput.setAttribute("value", data);
dataInput.setAttribute("type", "hidden");
var myForm = document.createElement("form");
myForm.appendChild(dataInput);
的Ajax:
$.ajax({
url: "HTML5Camera.aspx/Upload",
type: "POST",
// data : $('form').serialize(),
data: "{ 'image': '" + data1 + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data, status) {
alert('success')
}
});
代码隐藏:
[WebMethod(EnableSession = true)]
public static string Upload(string image)
{
}
答案 0 :(得分:0)
尝试在web.config中调整请求限制:
<system.web>
...
<httpRuntime maxRequestLength="8192" ... />
这里以8 mb为例(...
表示您可能在文件/标签中有其他信息)。所有base-64编码文件的大小都会增加33%,这在设置最大限制时需要考虑。
(将示例复制到帖子中可能会出错,但data1
未在任何地方定义,参见ajax方法。)
更新表示完整性(来自评论):
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483647"/>
</webServices>
</scripting>
</system.web.extensions>
答案 1 :(得分:0)
继承代码以增加web.config中的json序列化
代码:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483647"/>
</webServices>
</scripting>
</system.web.extensions>