对POST提交数据限制的解决方案
转载:
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提交数据限制的解决方案相关推荐
- 使用axios post 提交数据,后台获取不到提交的数据解决方案
使用axios post 提交数据,后台获取不到提交的数据解决方案 参考文章: (1)使用axios post 提交数据,后台获取不到提交的数据解决方案 (2)https://www.cnblogs. ...
- vue el-form鼠标事件导致页面刷新解决方案;vue 阻止多次点击提交数据通用方法...
一.阻止表单自动提交刷新页面:<el-form><el-form-item :inline="true" @submit.native.prevent>&l ...
- 手机端系统提交数据的创建时间验证的问题
今天查看系统时,发现手机端系统提交的数据中存在一些日期特别离谱的数据.比如创建时间为1978年和2019年的数据都出现了. 果真是穿越了半个世纪了.于是我马上将问题提交出来,安排同事处理,并分析产生数 ...
- php 当我添加数据成功后跳到首页 为什么刷新还会增加数据,使用post提交数据之后,有错误,页面刷新之后,想保持原有值...
如题,我使用的ecmall模板 *{$lang.user_name}: {$lang.user_name_desc}{$lang.checking} 回复讨论(解决方案) 想用 $smarty.pos ...
- form表单、控制器中接收表单提交数据的4种方式
Form表单 这篇文章主要讲的是form表单的提交 之前我们接触过的form表单元素是在Bootstrap框架里面,这次也将用到Bootstrap框架去布局(见图表1)通过Bootstrap框架布局呈 ...
- .NET 大数据量并发解决方案
.NET 大数据量并发解决方案 目录 .NET 大数据量并发解决方案 第一类情况 :大量的用户同时对系统的不同功能页面进行查找.更新操作 一.对服务器层面的处理 二.对数据库层面的处理 三.ADO.N ...
- 运维数据防泄露解决方案
行业背景 人类进入工业社会之后,制造业逐渐成为一个国家经济能力乃至综合国力的基石.当前全球经济普遍面临转型压力,作为经济体系的稳定器,制造业迎来了前所未有的发展机遇,同时也面临着多重挑战.可以说,智能 ...
- 四种常见的 POST 提交数据方式 专题
原文地址为: 四种常见的 POST 提交数据方式 专题 定义和用法 enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码. 默认地,表单数据会编码为 "application ...
- php过滤提交数据 防止sql注入攻击
php过滤提交数据 防止sql注入攻击 在SQL注入攻击 中,用户通过操纵表单或 GET 查询字符串,将信息添加到数据库查询中.例如,假设有一个简单的登录数据库.这个数据库中的每个记录都有一个用户名字 ...
最新文章
- 理解linux tr命令
- 用正则表达式判断一个二进制数是否能被3整除
- c语言空中升级协议,esp32 http空中升级
- Mysql 错误 Code: 1093. You can't specify target table for update in FROM clause
- 使用yum时,保留下载包设置
- Android 中文件类型与MIME的匹配表(转)
- linux 链接 文件,聊聊 Linux 里的文件链接
- 通过图书编号查询python_文字版图书管理-python练习
- Delphi XE10编写的《开放式公路收费系统》
- php 将字符串打乱,PHP内部实现打乱字符串顺序函数str_shuffle的方法
- Progress Control控件的使用
- QQ浏览器下拉词推广是什么?
- HTC Z710t解锁 获取root权限
- 洛谷试炼场------题目
- Array Shrinking(CodeForces - 1312E )
- 自定义CDH parcel
- 黑马程序员就业班第一天的总结以及自己的看法
- Kruskal算法求最小生成树
- 计算机专业英语一国家线,从以往国家公布的数据,客观来看2010年英语国家线...
- Django自定义Storage实现图片上传至各大OSS(上篇)