我們知道生成靜態頁,一般用模板的方式,這個我是會的,現在我想直接將ASP文件生成的HTML代碼存成靜態頁,這個非常適合做首頁,於時我在網上找這方面的內容,找到這個:《不用模板只用ASP+FSO生成靜態HTML頁的一個方法》://www.Vevb.com/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)