1.导包:
2. 后台:
2.1 fileupload项目WebContent下新建文件file、tmp文件夹:
2.2 FileController.java
@WebServlet(urlPatterns = {"/fileup.do"})//webVersion3.0可以使用注解设置urlpartten
public class FileController extends HttpServlet{
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext application = this.getServletContext();
//1.创建文件条目工厂对象
DiskFileItemFactory fatory = new DiskFileItemFactory();
//2.文件超过默认值,启用临时文件
fatory.setSizeThreshold(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD);
//3.设置临时文件路径
String tmppath = application.getRealPath("tmp");
fatory.setRepository(new File(tmppath));
//创建文件上传核心对象
ServletFileUpload fileUpload = new ServletFileUpload(fatory);//需要格式化工厂
try {
//解析request请求
List<FileItem> fileItems = fileUpload.parseRequest(request);
for (FileItem fileItem : fileItems){
if(fileItem.isFormField()){
//是一个普通的form表单
String fileName = fileItem.getFieldName();
String value = fileItem.getString("utf-8");
System.out.println(fileName+"="+value);
}else{
//是一个文件
String fileName = fileItem.getName();
String path = application.getRealPath("file") + "/"+fileName;//注意"/"结尾
fileItem.write(new File(path));
System.out.println(path);
}
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.前端 t1.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<form action="http://localhost:8080/fileupload/fileup.do" method="post" enctype="multipart/form-data">
<input type="file" name="file1"> <%-- FileItem --%>
<input type="submit" value="提交">
</form>
</body>
</html>