Lorsque la quantité de données envoyées par le formulaire est importante, une erreur sera signalée. En vérifiant MSDN, nous avons appris que la raison est que Microsoft a une limite sur le nombre maximum de données pouvant être reçues à l'aide de Request.Form(). Elle est de 80 Ko dans IIS4 et de 100 Ko dans IIS5.
Voici plusieurs solutions proposées par Microsoft :
1. Utilisez la méthode Request.BinaryRead au lieu de Request.Form pour analyser les données du formulaire ;
2.
Utilisez une solution de téléchargement de fichiers, telle que Microsoft Posting Acceptor.
éléments de formulaire, donc lors de la soumission, séparez le contenu de l'élément de formulaire supérieur à 102399 en plusieurs éléments de formulaire pour la soumission.
Voici un exemple de code : (Microsoft rappelle : le code suivant peut ne pas être entièrement applicable à des besoins spécifiques et n'est pas responsable des conséquences de l'utilisation de ces codes !)
<FORM method=post action=LargePost.asp name=theForm onsubmit= "BreakItUp()">
<Textarea rows=3 cols=100 name=BigTextArea>Un tas de texte...</Textarea>
<type d'entrée=valeur de soumission=aller>
</form>
<Langage SCRIPT=JavaScript>
fonction BreakItUp()
{
//Définit la limite de taille du champ.
//Si le contenu comporte des caractères chinois, il peut être défini sur : 51100
varFormLimit = 102399
//Obtenir la valeur du grand objet d'entrée.
var TempVar = nouvelle chaîne
TempVar = document.theForm.BigTextArea.value
//Si la longueur de l'objet est supérieure à la limite, cassez-le
//en plusieurs objets.
si (TempVar.length > FormLimit)
{
document.theForm.BigTextArea.value = TempVar.substr(0, FormLimit)
TempVar = TempVar.substr(FormLimit)
while (TempVar. longueur > 0)
{
var objTEXTAREA = document.createElement("TEXTAREA")
objTEXTAREA.name = "BigTextArea"
objTEXTAREA.value = TempVar.substr(0, FormLimit)
document.theForm.appendChild(objTEXTAREA)
TempVar = TempVar.substr(FormLimit)
}
}
}
</SCRIPT>
Code principal pour accepter la page de données :
<%
Dim BigTextArea
Pour I = 1 To Request.Form("BigTextArea").Count
BigTextArea = BigTextArea & Request.Form("BigTextArea") (I)
Suivant
%>