上传文件,form表单要注意的是enctype:
<form name="form1" method="post" enctype="multipart/form-data" action="<%=request.getContextPath()%>/jsp/video/UploadHandler.jsp">
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@page import="org.apache.commons.fileupload.FileItemFactory"%>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="org.apache.commons.fileupload.FileUpload"%>
String realPath= request.getRealPath("/");
String reletiveDir= "upload/";
String uploadFolder = realPath +"/" + reletiveDir;
File uploadDir = new File(uploadFolder);
List items1=null;
if(!uploadDir.exists()){
uploadDir.mkdirs();
}
// Check that we have a file upload request
boolean isMultipart = FileUpload.isMultipartContent(request);
if (!isMultipart) {
//response.getWriter().write("Use multipart form to upload a file!");
} else {
try{
FileItemFactory factory1 = new DiskFileItemFactory();
ServletFileUpload upload1 = new ServletFileUpload(factory1);
// st items = upload.parseRequest(request);
//factory1.setSizeMax(1000000000);
items1 = upload1.parseRequest(request);
}catch(Exception ex){
ex.printStackTrace();
}
// Process the uploaded items
Iterator iter = items1.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
//String fileName = item.getName();
if (item.isFormField()) {
//processFormField
} else {
//processUploadedFile
//String fieldName = item.getFieldName();
String fileName = item.getName();
int i2 = fileName.lastIndexOf("//");
if(i2>-1) fileName = fileName.substring(i2+1);
//File dirs = new File(uploadFolder);
//dirs.mkdirs();
File uploadedFile = new File(uploadDir,fileName);
item.write(uploadedFile);
}
}
}