我正在使用JSP开发一个简单的文件上传,一切正常,直到我将表单的enctype设置为" multipart / form-data",request.getParameterNames()
返回空。有什么想法吗?
这是我的代码:
upload.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>File Upload</title>
</head>
<body>
<form method="POST" action="login.jsp" enctype="multipart/form-data">
<input type="text" name="name" placeholder="File Name"></input>
<br>
<input type="file" name="file" id="file"></input>
<br><br>
<input type="submit" name="submit" id="submit" value="Submit"></input>
</form>
</body>
</html>
的login.jsp
<%@page import="java.util.Enumeration"%>
<%@page import="java.io.InputStream"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<%
Enumeration params = request.getParameterNames();
boolean empty = true;
while(params.hasMoreElements()){
String param = params.nextElement().toString();
out.println(param);
empty = true;
}
if(empty) out.println("No parameters received!");
%>
</body>
</html>
答案 0 :(得分:1)
请看这里: Convenient way to parse incoming multipart/form-data parameters in a Servlet
在servlet端以不同方式解析multipart。 在servlet规范3中,你需要调用'getParts()',在较旧的规范上你可能想要考虑第三方,比如Apache FileUpload。
答案 1 :(得分:1)
此问题是由enctype="multipart/form-data"
引起的,因此您可以使用@MultipartConfig
注释(javaee6
和servlet 3.0
之后可用)或commans-fileupload
,如下所示帖子: