会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
在技术的道路上摸索前进
博客园
首页
新随笔
联系
订阅
管理
对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
11
JavaScript代码
12
<
script language
=
javascript
>
13
//
数据拆分,并放到相应的hidden域中,在Form的onSubmit事件中激发
14
function fnPreHandle(MyForm)
15
{
16
var iCount;
//
拆分为多少个域
17
var strData;
//
原始数据
18
var iMaxChars
=
50000
;
//
考虑到汉字为双字节,域的最大字符数限制为50K
19
var iBottleNeck
=
2000000
;
//
如果文章超过2M字,需要提示用户
20
var strHTML;
21
22
//
原始数据
23
strData
=
MyForm.BigField.value;
24
25
//
如果文章实在太长,需要提醒用户
26
if
(strData.length
>
iBottleNeck)
27
{
28
if
(confirm(
"
您要发布的文章太长,建议您拆分为几部分分别发布。\n如果您坚持提交,注意需要较长时间才能提交成功。\n\n是否坚持提交?
"
)
==
false
)
29
return
false
;
30
}
31
32
iCount
=
parseInt(strData.length
/
iMaxChars)
+
1
;
33
34
//
hdnCount记录原数据域拆分为多少个子域
35
strHTML
=
"
<input type=hidden name=hdnCount value=
"
+
iCount
+
"
>
"
;
36
37
//
生成各子域的HTML代码
38
for
(var i
=
1
; i
<=
iCount; i
++
)
39
{
40
strHTML
=
strHTML
+
"
\n
"
+
"
<input type=hidden name=hdnBigField
"
+
i
+
"
>
"
;
41
}
42
43
//
在Form中DIV(divHidden)内动态插入各hidden域的HTML代码
44
document.all.divHidden.innerHTML
=
strHTML;
45
46
//
给各子域赋值
47
for
(var i
=
1
; i
<=
iCount; i
++
)
48
{
49
MyForm.elements[
"
hdnBigField
"
+
i].value
=
strData.substring((i
-
1
)
*
iMaxChars, i
*
iMaxChars);
50
}
51
52
//
原数据域清空
53
MyForm.BigField.value
=
""
;
54
}
55
</
script
>
56
57
58
====
服务器端示例代码
====
59
60
ASP
/
Visual Basic代码
61
<%
62
Dim strData
63
Dim intFieldCount
64
Dim i
65
66
intFieldCount
=
Request.Form(
"
hdnCount
"
)
67
68
For i
=
1
To intFieldCount
69
strData
=
strData
&
Request.Form(
"
hdnBigfield
"
&
i)
70
Next
71
72
Response.Write strData
73
%>
posted @
2008-06-12 14:56
TerryLove
阅读(
356
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部
公告