关于静态页生成问题 突破form数量限制

时间:2021-05-25

我们知道生成静态页,一般用模板的方式,这个我是会的,现在我想直接将ASP文件生成的HTML代码存成静态页,这个非常适合做首页,于时我在网上找这方面的内容,找到这个:《不用模板只用ASP+FSO生成静态HTML页的一个方法》:https://www.jb51.net/html/200609/984.htm,我试了一下,一般能办,但文件大时,就会出错,到底是什么原因呢?是textarea存储的文件有限制还是其他,反复上网查,同时在IECN发表帖子求助,我反复试验,发现是表单有限制,在网上找到了解决FORM的限制问题,

下面是转贴:

当表单发送的数据量很大时,就会报错。查阅msdn了解到,原因是微软对用request.form()可接收的最大数据有限制,iis4中为80k字节,iis5中为100k字节。
  下面是微软提供的几个解决方法:

1、用request.binaryread代替request.form方法来解析表单数据;

2、使用文件上传方案,比如:microsoftpostingacceptor;

3、由于102399字节的限制是对每个表单元素的,所以在提交时,把表单元素内容大于102399的分隔成多个表单元素来提交。

下面为示例代码:(微软提醒:下面代码不一定完全适用特定的需要,不对使用这些代码产生的后果负责!)
复制代码 代码如下:
<formmethod=postaction=largepost.aspname=theformonsubmit="breakitup()">
<textarearows=3cols=100name=bigtextarea>abunchoftext...</textarea>
<inputtype=submitvalue=go>
</form>
<scriptlanguage=javascript>
functionbreakitup()
{
//setthelimitforfieldsize.
//如果内容有中文的字符的话,可以设置为:51100
varformlimit=102399
//getthevalueofthelargeinputobject.
vartempvar=newstring
tempvar=document.theform.bigtextarea.value
//ifthelengthoftheobjectisgreaterthanthelimit,breakit
//intomultipleobjects.
if(tempvar.length>formlimit)
{
document.theform.bigtextarea.value=tempvar.substr(0,formlimit)
tempvar=tempvar.substr(formlimit)
while(tempvar.length>0)
{
varobjtextarea=document.createelement("textarea")
objtextarea.name="bigtextarea"
objtextarea.value=tempvar.substr(0,formlimit)
document.theform.appendchild(objtextarea)

tempvar=tempvar.substr(formlimit)
}
}
}
</script>


接受数据页主要代码:

<%
dimbigtextarea
fori=1torequest.form("bigtextarea").count
bigtextarea=bigtextarea&request.form("bigtextarea")(i)
next
%>

第一种也是有限制,我采用了第三种,终于成功了。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章