Bhu*_*han 10 java jsp servlets file-upload apache-commons-fileupload
我使用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>
Run Code Online (Sandbox Code Playgroud)
Servlet:GetFile
System.out.println(request.getParameter("text1"));
Run Code Online (Sandbox Code Playgroud)
我能上传文件到服务器上,但我不能够得到的值text1在servlet(我得到null的值text1的servlet),我需要这样textfield的形式提交一些额外的信息,同时上传到server.
enctype="multipart/form-data"形式的选项不允许其他形式的数据所需提交?如果它不允许它,那么我必须将其他选项发送textfield给它server.Sud*_*kar 13
那么参数不会丢失,只是它们是请求Stream的一部分.
您必须从请求中获取所有项目,并根据其项目类型进行相应的迭代和处理
List items = upload.parseRequest(request);
Run Code Online (Sandbox Code Playgroud)
继承人你怎么能得到它
// Process the uploaded items
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
String name = item.getFieldName();//text1
String value = item.getString();
} else {
processUploadedFile(item);
}
}
Run Code Online (Sandbox Code Playgroud)
Har*_*Joy 12
是
enctype="multipart/form-data"形式的选项不允许其他形式的数据所需提交?如果它不允许它,那么我必须将此附加文本字段发送到服务器的其他选项是什么.
没有使用问题enctype="multipart/form-data".您可以获得其他字段,然后以这种形式提交.
或者我的代码中还有其他问题吗?
是的,就像现在一样.使用enctype="multipart/form-data"时无法通过使用直接获取参数request.getParameter(name);.使用它时,表单字段不可用作请求的参数,它们包含在流中,因此您无法以正常方式获取它.您可以在使用commons-fileupload的文档中找到一种方法,在处理上传的项目下.