1.jar包导入
commons-fileupload-1.2.2.jar
commons-io-2.4.jar
2.form表单
提交方式为post enctype设置为 multipart/form-data
<form action="" method="post" enctype="multipart/form-data">
<input type="file"/>
</form>
3.servlet编码
//获取一个boolean 判断enctype属性是否为 "multipart/form-data"
boolean imc=ServletFileUpload.isMultipartContent(request);
if(imc){
//创建文件解析工厂对象 解析普通或文件表单
FileItemFactory fanctory=new DiskFileItemFactory();
//获取文件解析对象
ServletFileUpload upload=new ServletFileUpload(fanctory);
try {
//解析得到表单集合 处理一下异常
List<FileItem> items=upload.parseRequest(request);
//遍历表单集合
for (FileItem fileItem : items) {
//区分是文件表单还是普通表单
if(fileItem.isFormField()){//***普通表单
//获取到普通表单的name值
String inputName=fileItem.getFieldName();
//通过if判断框的name来获取框的值value
if("nameValue".equals(inputName)){
//声明变量接收值 括号填写字符编码集
String inputValue=fileItem.getString("utf-8");
}
//有多少普通input就加多少 一个if拿一个值
}else {//***文件表单
//获取文件对象
File file=new File(fileItem.getName());
//获取文件保存路径 | 括号为文件所在文件的文件名 | 文件放在WebRoot下 右键创建folder
String uploadPath=request.getSession().getServletContext().getRealPath("file/");
//文件提交到文件夹
File uploadFile=new File(uploadPath,file.getName());
try {
fileItem.write(uploadFile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
}
0.0 搞定!!!