对POST提交数据限制的解决方案
生活随笔
收集整理的這篇文章主要介紹了
对POST提交数据限制的解决方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載:
Code?1由于微軟對POST提交數據的大小進行了限制,當表單發送的數據量很大時,就會報錯(錯誤?"ASP?0107?:?80004005")。原因是微軟對用Request.Form()可接收的最大數據限制為100K字節。
?2
?3????問題的解決辦法是,對于一個需要發送大數據的域,在提交表單前將數據拆分為小于限額的數份,分別放在數個hidden域中,同時把原有域清空,再正式提交表單。服務器端還是用Request.Form()讀取各hidden域的數據,再按照順序把他們拼接起來就行了。主要代碼如下:
?4
?5注意:需要在Form中的HTML代碼內指定一個DIV,以便向其中動態插入hidden域。
?6
?7====客戶端示例代碼====
?8
?9在Form中的HTML代碼內加入:<div?id=divHidden></div>,在Form標簽中加入:?onSubmit="return?fnPreHandle(this)",將下面代碼中的BigField換成您表單中提交大數據庫的域的名稱。
10
11JavaScript代碼
12<script?language=javascript>?????
13//數據拆分,并放到相應的hidden域中,在Form的onSubmit事件中激發?????
14function?fnPreHandle(MyForm)?????
15{?????
16var?iCount;?//拆分為多少個域?????
17var?strData;?//原始數據?????
18var?iMaxChars?=?50000;//考慮到漢字為雙字節,域的最大字符數限制為50K?????
19var?iBottleNeck?=?2000000;//如果文章超過2M字,需要提示用戶?????
20var?strHTML;?????
21???
22//原始數據?????
23strData?=?MyForm.BigField.value;?????
24???
25//如果文章實在太長,需要提醒用戶?????
26if?(strData.length?>?iBottleNeck)?????
27{?????
28if?(confirm("您要發布的文章太長,建議您拆分為幾部分分別發布。\n如果您堅持提交,注意需要較長時間才能提交成功。\n\n是否堅持提交?")?==?false)?????
29return?false;?????
30}?????
31???
32iCount?=?parseInt(strData.length?/?iMaxChars)?+?1;?????
33???
34//hdnCount記錄原數據域拆分為多少個子域?????
35strHTML?=?"<input?type=hidden?name=hdnCount?value="?+?iCount?+?">";?????
36???
37//生成各子域的HTML代碼?????
38for?(var?i?=?1;?i?<=?iCount;?i++)?????
39{?????
40strHTML?=?strHTML?+?"\n"?+?"<input?type=hidden?name=hdnBigField"?+?i?+?">";?????
41}?????
42???
43//在Form中DIV(divHidden)內動態插入各hidden域的HTML代碼?????
44document.all.divHidden.innerHTML?=?strHTML;?????
45???
46//給各子域賦值?????
47for?(var?i?=?1;?i?<=?iCount;?i++)?????
48{?????
49MyForm.elements["hdnBigField"?+?i].value?=?strData.substring((i?-?1)?*?iMaxChars,?i?*?iMaxChars);?????
50}?????
51???
52//原數據域清空?????
53MyForm.BigField.value?=?"";?????
54}?????
55</script>????
56?
57
58====服務器端示例代碼====?
59
60ASP/Visual?Basic代碼
61<%?????
62Dim?strData?????
63Dim?intFieldCount?????
64Dim?i?????
65???
66intFieldCount?=?Request.Form("hdnCount")?????
67???
68For?i=1?To?intFieldCount?????
69strData?=?strData?&?Request.Form("hdnBigfield"?&?i)?????
70Next?????
71???
72Response.Write?strData?????
73%>????
轉載于:https://www.cnblogs.com/mooner/archive/2008/06/12/1218392.html
總結
以上是生活随笔為你收集整理的对POST提交数据限制的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全球各大运营商黑莓ROM官网下载链接汇总
- 下一篇: 死亡岛:激流怎么存档-存档继承前代方法