设为首页
加入收藏
站内地图
旧版入口
当前位置:首页 > 站长学院 > 网络编程 > ASP

在Form域中Post大于100K的数据

作者:佚名 出处:网络转载 时间:10-03 点击:

内容载入中...
当表单发送的数据量很大时,就会报错。查阅MSDN了解到,原因是微软对用Request.Form()可接收的最大数据有限制,IIS4中为80K字节,IIS5中为100K字节。

  下面是微软提供的几个解决方法:

1、用Request.BinaryRead 代替 Request.Form方法 来解析表单数据;

2、使用文件上传方案,比如:Microsoft Posting Acceptor;

3、由于102399字节的限制是对每个表单元素的,所以在提交时,把表单元素内容大于102399的分隔成多个表单元素来提交。

下面为示例代码:(微软提醒:下面代码不一定完全适用特定的需要,不对使用这些代码产生的后果负责!)

<FORM method=post action=LargePost.asp name=theForm onsubmit="BreakItUp()">

<Textarea rows=3 cols=100 name=BigTextArea>A bunch of text...</Textarea>

<input type=submit value=go>

</form>

<SCRIPT Language=JavaScript>

function BreakItUp()

{

  //Set the limit for field size.

  //如果内容有中文的字符的话,可以设置为:51100

  var FormLimit = 102399

  //Get the value of the large input object.

  var TempVar = new String

  TempVar = document.theForm.BigTextArea.value

  //If the length of the object is greater than the limit, break it

  //into multiple objects.

  if (TempVar.length > FormLimit)

  {

    document.theForm.BigTextArea.value = TempVar.substr(0, FormLimit)

    TempVar = TempVar.substr(FormLimit)

    while (TempVar.length > 0)

    {

      var objTEXTAREA = document.createElement("TEXTAREA")

      objTEXTAREA.name = "BigTextArea"

      objTEXTAREA.value = TempVar.substr(0, FormLimit)

      document.theForm.appendChild(objTEXTAREA)

      

      TempVar = TempVar.substr(FormLimit)

    }

  }

}

</SCRIPT>

      

接受数据页主要代码:

<%

Dim BigTextArea

For I = 1 To Request.Form("BigTextArea").Count 

  BigTextArea = BigTextArea & Request.Form("BigTextArea")(I)

Next

%>

收藏本文:
】【打印页面】【推荐给朋友】【关闭窗口

站长学院

推荐信息