文件上传对页面的要求
- 必须使用表单,而不能是超链接;
- 表单的method必须是POST,而不能是GET;
- 表单的enctype必须是multipart/form-data;
- 在表单中添加file表单字段,即
<input type=”file”…/>
文件上传对Servlet的要求
当提交的表单是文件上传表单时,那么对Servlet也是有要求的。
首先我们要肯定一点,文件上传表单的数据也是被封装到request对象中的。
request.getParameter(String)方法获取指定的表单字段字符内容,但文件上传表单已经不在是字符内容,而是字节内容,所以失效。
这时可以使用request的getInputStream()方法获取ServletInputStream对象,它是InputStream 的子类,这个ServletInputStream对象对应整个表单的正文部分(从第一个分隔线开始,到最后),这说明我们需要的解析流中的数据。当然解析它是很麻烦的一件事情,而Apache已经帮我们提供了解析它的工具:commons-fileupload。
可以尝试把request.getInputStream()这个流中的内容打印出来,再对比httpWatch中的请求数据。
commons-fileupload
为什么使用fileupload:
上传文件的要求比较多,需要记一下: 必须是POST表单;
表单的enctype必须是multipart/form-data;
在表单中添加file表单字段,即
Servlet的