Jika jumlah data yang dikirim melalui formulir besar, kesalahan akan dilaporkan. Saat memeriksa MSDN, kami mengetahui bahwa alasannya adalah Microsoft memiliki batasan data maksimum yang dapat diterima menggunakan Request.Form() yaitu 80K byte di IIS4 dan 100K byte di IIS5.
Berikut ini adalah beberapa solusi yang disediakan oleh Microsoft:
1. Gunakan metode Request.BinaryRead alih-alih metode Request.Form untuk mengurai data formulir;
2.
Gunakan solusi unggah file, seperti Microsoft Posting Acceptor;
elemen formulir, jadi saat mengirimkan, pisahkan konten elemen formulir yang lebih besar dari 102399 menjadi beberapa elemen formulir untuk pengiriman.
Berikut ini adalah contoh kode: (Microsoft mengingatkan: Kode berikut mungkin tidak sepenuhnya berlaku untuk kebutuhan spesifik, dan tidak bertanggung jawab atas konsekuensi penggunaan kode ini!)
<FORM method=post action=LargePost.asp name=theForm onsubmit= "BreakItUp()">
<Textarea row=3 cols=100 name=BigTextArea>Sekumpulan teks...</Textarea>
<tipe masukan=kirim nilai=pergi>
</bentuk>
<Bahasa SKRIP=JavaScript>
fungsi BreakItUp()
{
//Tetapkan batas ukuran bidang.
//Jika konten memiliki karakter Cina, dapat diatur ke: 51100
var FormLimit = 102399
//Dapatkan nilai dari objek masukan yang besar.
var TempVar = String baru
TempVar = dokumen.theForm.BigTextArea.value
//Jika panjang benda lebih besar dari batasnya, patahkan
//menjadi beberapa objek.
jika (TempVar.length > FormLimit)
{
document.theForm.BigTextArea.value = TempVar.substr(0, FormLimit)
TempVar = TempVar.substr(FormLimit)
while (TempVar.panjang > 0)
{
var objTEXTAREA = dokumen.createElement("TEXTAREA")
objTEXTAREA.name = "Area Teks Besar"
objTEXTAREA.value = TempVar.substr(0, FormLimit)
dokumen.theForm.appendChild(objTEXTAREA)
TempVar = TempVar.substr(FormLimit)
}
}
}
</SKRIP>
Kode utama untuk menerima halaman data:
<%
Redupkan BigTextArea
Untuk I = 1 Ke Request.Form("BigTextArea").Count
BigTextArea = BigTextArea & Permintaan.Form("BigTextArea")(I)
Berikutnya
%>