package servlet;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
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 java.io.File;
import java.io.IOException;
import java.util.List;
@WebServlet("/upload")
public class Upload extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("in");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("in post");
System.out.println("是不是multipart:");
boolean multipartContent = ServletFileUpload.isMultipartContent(req);
System.out.println(multipartContent);
System.out.println("上传目录");
String upload = req.getServletContext().getRealPath("upload");
System.out.println(upload);
System.out.println("目录是否存在:");
File file = new File(upload);
boolean exists = file.exists();
System.out.println(exists);
if (!exists) {
System.out.println("目录不存在就创建一个:");
boolean mkdir = file.mkdir();
System.out.println("创建的结果");
System.out.println(mkdir);
}
if (multipartContent) {
System.out.println("如果是multipart");
FileItemFactory fileItemFactory = new DiskFileItemFactory();
ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);
List<FileItem> list = servletFileUpload.parseRequest(req);
for (FileItem item :
list) {
// 是否普通字段
boolean formField = item.isFormField();
if (formField) {
// 普通字段拿数据
String value = item.getString("utf8");
System.out.println("控件的值是:");
System.out.println(value);
} else {
String name = item.getName();
File myFile = new File(upload, name);
item.write(myFile);
}
}
}
}
}
加上异常
然后调一调后
package servlet;
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;
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 java.io.File;
import java.io.IOException;
import java.util.List;
@WebServlet("/upload")
public class Upload extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("in");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf8");
System.out.println("in post");
System.out.println("是不是multipart:");
boolean multipartContent = ServletFileUpload.isMultipartContent(req);
System.out.println(multipartContent);
System.out.println("上传目录");
String upload = req.getServletContext().getRealPath("upload");
System.out.println(upload);
System.out.println("目录是否存在:");
File file = new File(upload);
boolean exists = file.exists();
System.out.println(exists);
if (!exists) {
System.out.println("目录不存在就创建一个:");
boolean mkdir = file.mkdir();
System.out.println("创建的结果");
System.out.println(mkdir);
}
if (multipartContent) {
System.out.println("如果是multipart");
FileItemFactory fileItemFactory = new DiskFileItemFactory();
ServletFileUpload servletFileUpload = new ServletFileUpload(fileItemFactory);
List<FileItem> list = null;
try {
list = servletFileUpload.parseRequest(req);
} catch (FileUploadException e) {
e.printStackTrace();
}
for (FileItem item :
list) {
// 是否普通字段
boolean formField = item.isFormField();
if (formField) {
// 普通字段拿数据
String value = item.getString("utf8");
System.out.println("控件的值是:");
System.out.println(value);
} else {
String name = item.getName();
File myFile = new File(upload, name);
try {
item.write(myFile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
}