양식에서 전송된 데이터의 양이 많으면 오류가 보고됩니다. MSDN을 확인해보니 Microsoft에서는 Request.Form()을 사용하여 수신할 수 있는 최대 데이터에 제한이 있기 때문에 IIS4에서는 80K 바이트, IIS5에서는 100K 바이트라는 것을 알게 되었습니다.
다음은 Microsoft에서 제공하는 여러 가지 솔루션입니다.
1. Request.Form 메서드 대신 Request.BinaryRead를 사용하여 양식 데이터를 구문 분석합니다.
2. Microsoft Posting Acceptor와 같은 파일 업로드 솔루션을 사용합니다.
3. 각각에 대해 102399바이트 제한이 있습니다. 양식 요소이므로 제출 시 102399보다 큰 양식 요소 콘텐츠를 여러 양식 요소로 분리하여 제출하세요.
다음은 샘플 코드입니다. (Microsoft에서는 다음 코드가 특정 요구 사항에 완전히 적용되지 않을 수 있으며 이러한 코드 사용으로 인한 결과에 대해 책임을 지지 않음을 상기시킵니다!)
<FORM method=post action=LargePost.asp name=theForm onsubmit= "BreakItUp()">
<Textarea 행=3 cols=100 name=BigTextArea>텍스트 묶음...</Textarea>
<입력 유형=값 제출=이동>
</form>
<SCRIPT 언어=자바스크립트>
함수 BreakItUp()
{
//필드 크기 제한을 설정합니다.
//내용에 한자가 포함된 경우 다음과 같이 설정할 수 있습니다: 51100
var FormLimit = 102399
//대형 입력 개체의 값을 가져옵니다.
var TempVar = 새 문자열
TempVar = document.theForm.BigTextArea.value
//객체의 길이가 제한보다 크면 중단합니다.
//여러 객체로.
if(TempVar.length > FormLimit)
{
document.theForm.BigTextArea.value = TempVar.substr(0, FormLimit)
TempVar = TempVar.substr(FormLimit)
동안(TempVar. 길이 > 0)
{
var objTEXTAREA = document.createElement("TEXTAREA")
objTEXTAREA.name = "BigTextArea"
objTEXTAREA.value = TempVar.substr(0, FormLimit)
document.theForm.appendChild(objTEXTAREA)
TempVar = TempVar.substr(FormLimit)
}
}
}
</SCRIPT>
데이터 페이지를 수락하기 위한 기본 코드:
<%
희미한 큰 텍스트 영역
I = 1의 경우 Request.Form("BigTextArea").Count
BigTextArea = BigTextArea & Request.Form("BigTextArea")(I)
다음
%>