JSP页面
<html>
<head>
<title>Upload File</title>
</head>
<body>
<form action="servlet/UploadFile" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
</body>
</html>
Servlet
package com.zsj.rf;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
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;
import com.zsj.userBean.UploadBean;
/**
* upload file servlet
* @author ZhiShuaiJie
*
*/
public class UploadFile extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//get target path/WebApplication path
//upload folder must entity
String path = this.getServletContext().getRealPath("upload");
System.out.println(path);//D:/Program Files/apache-tomcat-6.0.18/webapps/lucene1.1/upload
// Create a factory for disk-based file items
FileItemFactory factory = new DiskFileItemFactory();
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
List items = null;
try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
// Process the uploaded items
Iterator iter = items.iterator();
// Java Bean
UploadBean uploadBean = new UploadBean();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
// 如果不是上传文件,....
if (item.isFormField()) {
uploadBean.processFormField(item);
} else {
boolean flag = uploadBean.processUploadedFile(path, item);
if (flag) {
// 转向上传成功界面
response.sendRedirect("/you item name/uploadsuccess.jsp");
} else {
// 转向上传失败界面
response.sendRedirect("/you item name/uploadfailed.jsp");
}
}
}
}
}
JavaBean
package com.zsj.userBean;
import java.io.File;
import org.apache.commons.fileupload.FileItem;
/**
* upload file bean
* @author ZhiShuaiJie
*
*/
public class UploadBean {
/**
*
* @param path
* target path
* @param item
* upload of file
* @return
* return upload success or failed
*/
public boolean processUploadedFile(String path, FileItem item) {
// Process a file upload
boolean flag = false;
String fileName = item.getName();
// get behind of webapplication path filename
String fn = fileName.substring(fileName.lastIndexOf("\\") + 1, fileName
.length());
if (fn.length() <= 1) {
return flag;
}
File uploadedFile = new File(path, fn);
try {
item.write(uploadedFile);
flag = true;
return flag;
//write to target folder and return true,programming of exit
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
/**
* not upload file
*
* @param item
*/
public void processFormField(FileItem item) {
// Process a regular form field
if (item.isFormField()) {
String name = item.getFieldName();
String value = item.getString();
}
}
}
//备注,须自行下载两下jar包,下载地址http://www.apache.org/
//注意蓝色字体部分
commons-fileupload-1.1.1.jar
commons-io-1.2.jar