原因:

Form 域 POST 提交数据 100K(可能不是这个值) 限制的解决方案

 

因为微软这个限制是对表单内每个域(第一个控件)的限制。问题的解决办法是,对于一个需要发送大数据的域,在提交表单前将数据拆分为小于限额的数份,分别放在数个 hidden 域中,同时把原有域清空,再正式提交表单。服务器端还是用 Request.Form() 读取各 hidden 域的数据,再按照顺序把他们拼接起来就行了.

 

====客户端示例代码====

在Form中的HTML代码内加入:<div id=divHidden></div>,在 Form 标签中加入: onSubmit="return fnPreHandle(this)",将下面代码中的 BigField 换成您表单中提交大数据库的域的名称。

<script language=javascript>
//数据拆分,并放到相应的hidden域中,在Form的onSubmit事件中激发
function fnPreHandle(MyForm)
{
    var iCount; //拆分为多少个域
    var strData; //原始数据
    var iMaxChars = 50000;//考虑到汉字为双字节,域的最大字符数限制为50K
    var iBottleNeck = 2000000;//如果文章超过2M字,需要提示用户
    var strHTML;
    //原始数据
    strData = MyForm.BigField.value;
    //如果文章实在太长,需要提醒用户
    if (strData.length > iBottleNeck)
    {
        if (confirm("您要发布的文章太长,建议您拆分为几部分分别发布。\n如果您坚持提交,注意需要较长时间才能提交成功。\n\n是否坚持提交?") == false)
            return false;
    }
    iCount = parseInt(strData.length / iMaxChars) + 1;
    //hdnCount记录原数据域拆分为多少个子域
    strHTML = "<input type=hidden name=hdnCount value=" + iCount + ">";
    //生成各子域的HTML代码
    for (var i = 1; i <= iCount; i++)
    {
        strHTML = strHTML + "\n" + "<input type=hidden name=hdnBigField" + i + ">";
    }
    //在Form中DIV(divHidden)内动态插入各hidden域的HTML代码
    document.all.divHidden.innerHTML = strHTML;
    //给各子域赋值
    for (var i = 1; i <= iCount; i++)
    {
        MyForm.elements["hdnBigField" + i].value = strData.substring((i - 1) * iMaxChars, i * iMaxChars);
    }
    //原数据域清空
    MyForm.BigField.value = "";
}
</script>

====服务器端示例代码====

<%
Dim strData
Dim intFieldCount
Dim i
intFieldCount = Request.Form("hdnCount")
For i=1 To intFieldCount
    strData = strData & Request.Form("hdnBigfield" & i)
Next
Response.Write strData
%>

 

引用: http://www.cftea.com/c/2009/01/775UTMAG5AD76PWD.asp

Post 的数据被截断的更多相关文章

  1. 通过EL表达式,后台数据传到前台,引号及后面的数据被截断的问题:

    问题描述: 通过EL表达式,后台数据传到前台,引号及后面的数据被截断的问题: 如: 前端页面: html: 问题解决: 1.一个简单的办法,把 input 写成这样: <input type=& ...

  2. C# 从Excel2003将数据导入到SQL2005,数据发生截断的问题分析

    C# 从Excel2003将数据导入到SQL2005,数据发生截断的问题分析 问题描述:大家没有遇到过这种情况使用自己编写的工具读取Excel2003文件中的数据,然后执行插入语句将数据批量导入到SQ ...

  3. 【解决方案】客户端请求数据较大时,nginx返回数据被截断

    [问题描述]:客户端使用curl命令向nginx请求数据,当返回数据量较大时,数据被截断,客户端无法获取完整的数据. [问题原因]:nginx配置文件中包含了proxy_buffer_size.pro ...

  4. C#使用oledb方式将excel数据导入到datagridview后数据被截断为 255 个字符

    问题描述:在使用oledb方式将excel数据导入到datagridview中,在datagridview单元格中的数据没有显示全,似乎只截取了数据源中的一段 解决方案:1.关于该问题,微软官方答案: ...

  5. nginx 返回数据被截断

    nignx 代理 buffer proxy_buffers 16 512k; proxy_buffer_size 512k;   fastcgi buffer fastcgi_buffers 4 64 ...

  6. Teradata超长数据会截断

    1.数据库版本 Teradata 15.10 2.测试案例: create multiset table test_stg ( col1 ) CHARACTER SET LATIN not null ...

  7. Nginx返回大长度的JSON数据被截断

    1 添加Nginx参数,增加缓存字符串大小 head{ proxy_buffers 16 512k; //此处值代表nginx 设置 16个 512k 的块进行缓存,总共大小为16*512k prox ...

  8. SSIS 数据输出列因为字符截断而失败

    在数据源组件中,如果存在字符串类型的数据列,那么可能会存在,因为字符类型的长度不匹配,导致字符数据被截断的问题. SSIS报错信息:“Text was truncated or one or more ...

  9. 使用Fiddler截断更改Request数据

    0x01 Fiddler介绍 Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据.(百度百科) 0x ...

随机推荐

  1. Py Split and Count For "PFW Impact Crusher For Sale South Africa"

    data = 'As we all know, the impact Crusher is fully used in the transportation, energy, construction ...

  2. IBM开发者 JSON 教程

    在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式.掌握 Ajax 的这一期讨论另一种有用的数据格式 JavaScript Object Notation(JSON),以及如何 ...

  3. 14)Java中Assert

    J2SE 1.4在语言上提供了一个新特性,就是assertion(断言)功能,它是该版本在Java语言方面最大的革新.在软件开发中,assertion是一种经典的调试.测试方式. jvm 断言默认是关 ...

  4. C# 平时碰见的问题【6】

    EF Code First 设置复合主键的方法 除了单纯多对多的关系表外, 我们可能在关系表上加其他的属性: 比如[订单行] 对应的[订单]和[商品]就需要多一个数量字段 而又不想在这个[订单行]表上 ...

  5. 3.第一个python程序

    学习任何一门语言的第一步,首先要写个'hello world',这算是程序员的一个传统.但在写之前,还有注意几个问题. 首先,python是一门脚本语言,而脚本语言的特点就是:我们写的代码会先由解释器 ...

  6. String类详解,StringBuffer

    先说一下String类的equals()方法. 下面我们先看一段代码: 这段代码输出的结果为: ture true -------------- false 咋看之下貌似Object类比较特别,那么我 ...

  7. NOJ1066-堆排序

    堆排序 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte总提交 : 414            测试通过 : 220  比 ...

  8. zip解压缩

    package com.green.project.compress; import java.io.File;import java.io.FileInputStream;import java.i ...

  9. android----Java DES加密算法工具类

    DESUtil类 public class DESUtil { private static byte[] iv = {0x12, 0x34, 0x56, 0x78, (byte) 0x90, (by ...

  10. hud 2586 How far away ?

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2586 How far away ? Description There are n houses in ...