我正在编写一个应用程序将图像文件上传到服务器。我正在宣布将类型的形式宣布为 enctype =" multipart/form-data"> 我在此表单中也声明了很少的隐藏变量。当我试图在servlet中获取这些隐藏变量的值时,它以" null"的形式出现。如果我删除 ENCTYPE ,我可以检索变量的正确值。
JSP Form :
<FORM name="form1" enctype="multipart/form-data"><!-- T1787NM -->
<input type=hidden name="stringurl" value="<%=stringurl%>">
<input type=hidden name="savetype" value="<%=ACTION%>">
<INPUT type="hidden" name="iReq" value="<%=iReq%>">
<INPUT type="File" name="FileUpload" id="fileInput">
</FORM>
Servlet :
String stringurl=(String) req.getParameter("stringurl");
other code..
我想知道如何在servlet中访问这些变量。预先感谢。
您需要在Servlet中编写以下代码
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (!isMultipart) {
} else {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<?> items = null;
String stringUrl = null;
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
Iterator<?> itr = items.iterator();
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();
if (item.isFormField()) {
System.out.println("Form Field");
String parameterName = item.getName();
if(parameterName.equals("stringurl")) {
stringUrl = item.getString();
}
} else {
// upload file logic here
}
}
}
同样,您需要使用其他梯子来获取所有其他表单字段。
您还必须添加Commons-Fileupload.jar,Commons-logging.jar和Commons-io.Jar。