**1.前台页面使用form表单
2.method选择post方式提交(只能选择post提交方式)
3.enctype=”multipart/form-data” ,这一条也必须添加**
后台代码:
使用两个工具包:commons-fileupload-1.2.1.jar、commons-io-1.4.jar
//1.获得磁盘文件项工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
//2.获得核心类
ServletFileUpload fileUpload = new ServletFileUpload(factory);
//3.解析request,由于表单中写了enctype="multipart/form-data",就不能使用request.getParameter()方法得到表单数据
List<FileItem> parseRequest = fileUpload.parseRequest(request);
//文件夹的真实路径
String realPath = this.getServletContext().getRealPath("upload");
//4.遍历文件项
for (FileItem fileItem : parseRequest) {
if(fileItem.isFormField()) {
//表示是普通表单项
String fieldName = fileItem.getFieldName(); //获得表单项名字
String string = fileItem.getString("UTF-8"); //获得表单项值
//接下来可以进行其他操作
}else {
//表示是文件项
String name = fileItem.getName(); //获得文件名字
InputStream in = fileItem.getInputStream();
OutputStream out = new FileOutputStream(realPath+"/"+name);
IOUtils.copy(in, out);
in.close();
out.close();
fileItem.delete(); //这个语句是删除拷贝过程中产生的临时文件
}
}