SCRIPT language=javascript> //數據拆分,并放到相應的hidden域中,在Form的onSubmit事件中激發 function fnPreHandle() { var iCount; //拆分為多少個域 var strData; //原始數據 var iMaxChars = 50000;//考慮到漢字為雙字節,域的最大字符數限制為50K var iBottleNeck = 2000000;//如果文章超過2M字,需要提示用戶 var strHTML;//原始數據 strData = frmTest.BigField.value;//如果文章實在太長,需要提醒用戶 if (strData.length > iBottleNeck) { if (confirm("您要發布的文章太長,建議您拆分為幾部分分別發布。\n如果您堅持提交,注意需要較長時間才能提交成功。\n\n是否堅持提交?") == false) return false; }iCount = parseInt(strData.length / iMaxChars) + 1;//hdnCount記錄原數據域拆分為多少個子域 strHTML = "input type=hidden name=hdnCount value=" + iCount + ">";//生成各子域的HTML代碼 for (var i = 1; i = iCount; i++) { strHTML = strHTML + "\n" + "input type=hidden name=hdnBigField" + i + ">"; }//在Form中DIV(divHidden)內動態插入各hidden域的HTML代碼 document.all.divHidden.innerHTML = strHTML;//給各子域賦值 for (var i = 1; i = iCount; i++) { frmTest.elements["hdnBigField" + i].value = strData.substring((i - 1) * iMaxChars, i * iMaxChars); }//原數據域清空 frmTest.BigField.value = ""; } /SCRIPT>
====服務器端示例代碼====
復制代碼 代碼如下:
% Dim strData Dim intFieldCount Dim iintFieldCount = Request.Form("hdnCount")For i=1 To intFieldCount strData = strData Request.Form("hdnBigfield" i) NextResponse.Write strData %>