下面是转贴:
当表单发送的数据量很大时,就会报错。查阅msdn了解到,原因是微软对用request.form()可接收的最大数据有限制,iis4中为80k字节,iis5中为100k字节。
下面是微软提供的几个解决方法:
1、用request.binaryread 代替 request.form方法 来解析表单数据;
2、使用文件上传方案,比如:microsoft posting acceptor;
3、由于102399字节的限制是对每个表单元素的,所以在提交时,把表单元素内容大于102399的分隔成多个表单元素来提交。
下面为示例代码:(微软提醒:下面代码不一定完全适用特定的需要,不对使用这些代码产生的后果负责!)
复制代码 代码如下:
<form method=post action=largepost.asp name=theform onsubmit="breakitup()">
<textarea rows=3 cols=100 name=bigtextarea>a bunch of text...</textarea>
<input type=submit value=go>
</form>
<script language=javascript>
function breakitup()
{
//set the limit for field size.
//如果内容有中文的字符的话,可以设置为:51100
var formlimit = 102399
//get the value of the large input object.
var tempvar = new string
tempvar = document.theform.bigtextarea.value
//if the length of the object is greater than the limit, break it
//into multiple objects.
if (tempvar.length > formlimit)
{
document.theform.bigtextarea.value = tempvar.substr(0, formlimit)
tempvar = tempvar.substr(formlimit)
while (tempvar.length > 0)
{
var objtextarea = document.createelement("textarea")
objtextarea.name = "bigtextarea"
objtextarea.value = tempvar.substr(0, formlimit)
document.theform.appendchild(objtextarea)
tempvar = tempvar.substr(formlimit)
}
}
}
</script>
接受数据页主要代码:
<%
dim bigtextarea
for i = 1 to request.form("bigtextarea").count
bigtextarea = bigtextarea & request.form("bigtextarea")(i)
next
%>
第一种也是有限制,我采用了第三种,终于成功了。