Cuando la cantidad de datos enviados por el formulario sea grande, se informará un error. Al revisar MSDN, aprendimos que la razón es que Microsoft tiene un límite en la cantidad máxima de datos que se pueden recibir usando Request.Form(): 80 KB en IIS4 y 100 KB en IIS5.
Las siguientes son varias soluciones proporcionadas por Microsoft:
1. Utilice el método Request.BinaryRead en lugar del Request.Form para analizar los datos del formulario.
2. Utilice una solución de carga de archivos, como Microsoft Posting Acceptor.
3. Dado que el límite de 102399 bytes es para cada uno; elementos de formulario, por lo tanto, al enviar, separe el contenido del elemento de formulario mayor que 102399 en varios elementos de formulario para su envío.
El siguiente es un código de muestra: (Microsoft recuerda: Es posible que el siguiente código no sea totalmente aplicable a necesidades específicas y no es responsable de las consecuencias del uso de estos códigos).
<FORM método=post acción=LargePost.asp nombre=theForm onsubmit= "Romperlo()">
<Textarea filas=3 cols=100 nombre=BigTextArea>Un montón de texto...</Textarea>
<tipo de entrada=enviar valor=ir>
</formulario>
<Lenguaje SCRIPT=JavaScript>
función Romper()
{
//Establece el límite para el tamaño del campo.
//Si el contenido tiene caracteres chinos, se puede configurar en: 51100
var límite de formulario = 102399
//Obtiene el valor del objeto de entrada grande.
var TempVar = nueva cadena
TempVar = documento.theForm.BigTextArea.valor
//Si la longitud del objeto es mayor que el límite, divídelo
//en múltiples objetos.
si (TempVar.length > FormLimit)
{
document.theForm.BigTextArea.value = TempVar.substr(0, FormLimit)
TempVar = TempVar.substr(FormLimit)
mientras (longitud TempVar. > 0)
{
var objTEXTAREA = document.createElement("TEXTAREA")
objTEXTAREA.name = "BigTextArea"
objTEXTAREA.value = TempVar.substr(0, FormLimit)
documento.theForm.appendChild(objTEXTAREA)
TempVar = TempVar.substr(FormLimit)
}
}
}
</SCRIPT>
Código principal para aceptar página de datos:
<%
Atenuar BigTextArea
Para I = 1 Para Request.Form("BigTextArea").Count
BigTextArea = BigTextArea & Solicitud.Form("BigTextArea")(I)
Próximo
%>