快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

博亚娱乐:如何在Form域中Post大于100K字节的数据



若何在Form域中Post大年夜于100K字节的数据????

曩昔在事情中碰到一个问题,当表单发送的数据量很大年夜时,就会报错。查阅MSDN懂得到,缘故原由是微软对用Request.Form()可接管的最大年夜数据限定为100K字节。

微软建议博亚娱乐用Request.BinaryRead()读取表单数据,但因为这种措施读出的是二进制数据,必要对读出博亚娱乐的数据逐字节进行阐发,天生故意义的字符串(MSDN上的一段法度榜样便是这样写的,但它并没有斟酌诸如标点符号等转义字符必要进行特殊阐发)。假如说这种措施对付纯英体裁系勉强可用的话,则对付中体裁系来说就有极大年夜的麻烦,由于汉字是用两个字节表示的,而读出的二进制数据本身并不能判断是英文照样汉字(否则就不是二进制数据,而是字符串了^-^)。这样的话就必须懂得汉字的编码规律才能进行阐发。着末,纵然算法上能把这些都阐发出来,大年夜家想想对付博亚娱乐一个MB级的巨型字符串逐字节进行阐发,其效率何如?以是,此路不通!

不过,法子老是有的。一开始我以为是全部表单数据的总和不能跨越100KB,后来发明这是对表单内每个域的限定。问题的办理法子是,对付一个必要发送大年夜数据的域,在提交表单前将数据拆分为小于限额的数份,分手放在数个hidd博亚娱乐en域中,同时把原有域清空,再正式提交表单。办事器端照样用Request.Form()读取各hidden域的数据,再按照顺序把他们拼接起来就行了。主要代码如下:

留意:必要在Form中的HTML代码内指定一个DIV,以便向此中动态插入hidden域。

====客户博亚娱乐端示例代码====

====办事器端示例代码====

你说微软为什么要有个100KB的限定呢?浑!

您可能还会对下面的文章感兴趣: