为什么skipPreamble()返回false?

时间:2014-03-21 19:51:08

标签: java servlets apache-commons-fileupload

我使用http://commons.apache.org/proper/commons-fileupload/来解析多部分表单并提取上传的文件。我正在关注本手册http://www.oreillynet.com/onjava/blog/2006/06/parsing_formdata_multiparts.html以及该软件包中的新文档。 request.getContentLength()表示700K,即代码

InputStream input = request.getInputStream();
MultipartStream mStream = new MultipartStream(input, boundArray, 94096 /*random number*/, null);
boolean part = mStream.skipPreamble();

该部分始终 false 。谁能告诉我为什么? 谢谢!

1 个答案:

答案 0 :(得分:0)

关于MultipartStream.java的代码,你在discardBodyData或readBoundary中得到MalformedStreamException。

看起来discardBodyData只声明,bun永远不会抛出MalformedStreamException。

readBoundary抛出MalformedStreamException(“意外字符跟随边界”)和MalformedStreamException(“Stream意外结束”)。

评论说:

* @throws MalformedStreamException if the stream ends unexpectedly or
*                                  fails to follow required syntax

假设: 94096 / 随机数 / 应该是缓冲区大小。 对于700K,94096是不够的,因此对于MultipartStream流意外结束。