當表單發(fā)送的數(shù)據(jù)量很大時,就會報錯。查閱MSDN了解到,原因是微軟對用Request.Form()可接收的最大數(shù)據(jù)有限制,IIS4中為80K字節(jié),IIS5中為100K字節(jié)。
下面是微軟網(wǎng)站的解決的幾個方法:
Request.Form collection, use Request.BinaryRead (Request.TotalBytes), and parse the form values from the output of Request.BinaryRead.
- Use a File Upload scheme, such as Microsoft Posting Acceptor.
- Break the HTML form variables into multiple form variables before you submit the form. The 102,399 byte limit is for each form variable, so you can have multiple form variables of 102,399 characters or less. The following sample code illustrates this: WARNING: ANY USE BY YOU OF THE CODE PROVIDED IN THIS ARTICLE IS AT YOUR OWN RISK. Microsoft provides this code "as is" without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.
<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.
var FormLimit = 102399
//Get the value of the large input object.
//(如果有中文,則要把102399改小一些,例如:51100)
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>
The receiving Active Server Page (ASP) page reconstructs the variable: <%
Dim BigTextArea
For I = 1 To Request.Form("BigTextArea").Count
BigTextArea = BigTextArea & Request.Form("BigTextArea")(I)
Next
%>
來自:http://support.microsoft.com/default.aspx?scid=kb;en-us;Q273482
出處:Microsoft
責任編輯:51windows
◎進入論壇網(wǎng)絡編程版塊參加討論
|