在使用 Java Servlet 编写 Web 服务器时,很有可能会提供文件上传功能,这里是我踩过的坑。
页面设置
这也是最容易忽略的一点:在 JSP 页面中的 <form> 中添加 ENCTYPE=”multipart/form-data”
使用文件上传库
加入第三方文件上传的库到项目中,在这里使用 Apache 的 jakarta 项目中的 commons-* 包。
修改代码
首先调用 ServletFileUpload.isMultipartContent(request) 返回一个 boolean 值,如果是
true 则表示 request 支持文件上传,这里可以加测试语句,如果是 false 就知道是在 request
出了问题,可能就是传递 request 的 JSP 中的 <form> 没有添加 ENCTYPE=”multipart/form-data”。
其次,修改代码如下:
注意:在有附件上传功能的页面中,不能使用 String name=request.getParameter(“name”);
这种简单的方式来获取表单提取的资料了。