servlet控制器代码
package com.lee.servlet;
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
@WebServlet("/UploadServlet")
public class UploadServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
//判断前端是否有multipart
boolean isMultipart = ServletFileUpload.isMultipartContent(request); //使用isMultipartContent获取前端是否存在multipart
if(isMultipart) {
FileItemFactory factory = new DiskFileItemFactory(); //FileItemFactory是接口,DiskFileItemFactory是具体实现类
ServletFileUpload upload = new ServletFileUpload(factory); //初始化ServletFileUpload对象
try {
List<FileItem> items = upload.parseRequest(request); //利用parseRequest解析form表单中的所有字段,并保存到List列表中
for(FileItem item : items) { //遍历列表,上传文件
String path = request.getSession().getServletContext().getRealPath("upload"); //获取upload的路径,路径可以通过getRealpath()获取,也可以直接使用字符串写死
String fileName = item.getName(); //获取文件名
File file = new File(path,fileName); //定义file对象,初始化上传路径和文件名称
item.write(file);
System.out.println(fileName + " 上传成功!");
}
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
jsp显示层代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="UploadServlet" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" value="提交">
</form>
</body>
</html>