我apache-commons-fileupload用来获取文件client到server。(使用JSP和Servlet)。
apache-commons-fileupload
client
server
JSP
Servlet
JSP / HTML
<form method="POST" action="GetFile" enctype="multipart/form-data"> <input type="file" name="datafile"> <input type="text" name="text1"> <input type="submit" value="Next"> </form>
Servlet:GetFile
System.out.println(request.getParameter("text1"));
我能上传文件到服务器上,但我不能够得到的值text1在servlet(我得到null的值text1的servlet),我需要这样textfield的形式提交一些额外的信息,同时上传到server。
text1
servlet
null
textfield
enctype="multipart/form-data"
是enctype="multipart/form- data"形式的选项不允许其他形式的数据所需提交?如果它不允许这样做,那么我还必须将其他文本字段发送到服务器的其他选项是什么。
enctype="multipart/form- data"
不,使用没有问题enctype="multipart/form-data"。您可以获取其他字段,然后以这种形式归档。
还是我的代码中还有其他问题?
是的,就目前而言。使用时enctype="multipart/form- data",不能直接使用获取参数request.getParameter(name);。使用表单字段时,表单字段不可用作请求的参数,而是包含在流中,因此您无法以常规方式获取表单字段。您可以在使用commons- fileupload的文档中找到处理此问题的方法,该部分 位于处理上载的项目下 。
request.getParameter(name);