在asp程序内,post提交的每个数据项最大不能超过100k,超过的话会程序报错。
解决方案:
把要提交的这个数据,分成几段,每段不超过100k。
接收端再把这些段拼在一起,存到数据库内。
客户端代码:
//数据拆分
function fnPreHandle()
...{
var iCount; //拆分为多少个域
var strData; //原始数据
var iMaxChars = 50000;//考虑到汉字为双字节,域的最大字符数限制为50K
var iBottleNeck = 2000000;//如果文章超过2M字,需要提示用户
var strHTML;//原始数据
strData = oblogform.edit.value;//如果文章实在太长,需要提醒用户
if (strData.length > iBottleNeck)
...{
if (confirm("您要发布的文章太长,建议您拆分为几部分分别发布。如果您坚持提交,注意需要较长时间才能提交成功。 是否坚持提交?") == false)
return false;
}
iCount = parseInt(strData.length / iMaxChars) + 1;//hdnCount记录原数据域拆分为多少个子域
strHTML = "<input type=hidden name=hdnCount value=" + iCount + ">";//生成各子域的HTML代码
for (var i = 1; i <= iCount; i++)
...{
strHTML = strHTML + " " + "<input type=hidden name=hdnBigField" + i + ">";
}
//在Form中DIV(divHidden)内动态插入各hidden域的HTML代码
document.all.divHidden.innerHTML = strHTML;//给各子域赋值
for (var i = 1; i <= iCount; i++)
...{
oblogform.elements["hdnBigField" + i].value = strData.substring((i - 1) * iMaxChars, i * iMaxChars);
}
//原数据域清空
oblogform.edit.value = "";
return true;
}
intFieldCount = Request.Form("hdnCount")
For i=1 To intFieldCount
strData = strData & Request.Form("hdnBigfield" & i)
Next