📄 uploadfileservlet.java
字号:
package org.servlet;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.servlet.RequestDispatcher;
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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.util.UploadUtil;
/**
* 用于文件上传处理的Servlet
*
* @author 沈元杰
*
* @date 2008-5-6
*/
public class UploadFileServlet extends HttpServlet
{
private static final long serialVersionUID = 56890894234786L;
@SuppressWarnings("unchecked")
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException
{
request.setCharacterEncoding("UTF-8");
// 文件上傳部分
//判断请求消息中的内容是否是“multipart/form-data”类型
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart == true)
{
try
{
//创建一个磁盘文件项目工厂
FileItemFactory factory = new DiskFileItemFactory();
//创建文件上传管理器
ServletFileUpload upload = new ServletFileUpload(factory);
// 得到所有的表单域,它们目前都被当作FileItem
List<FileItem> fileItems = upload.parseRequest(request);
Iterator<FileItem> iter = fileItems.iterator();
// 依次处理每个表单域
while (iter.hasNext())
{
FileItem item = (FileItem) iter.next();
if (item.isFormField())
{
// 如果item是正常的表单域,获得名字和值,不作处理
String name = item.getFieldName();
String value = item.getString();
System.out.print("表单域名为:" + name + "表单域值为:" + value);
}
else
{
// 如果item是文件上传表单域
// 获得文件名及路径
String fileName = item.getName();
System.out.print("上传表单域:" + fileName);
if (fileName != null)
{
File fullFile = new File(item.getName());
/*判断上传目录是否存在,
通过org.util包下的UploadUtil类获得文件的上传路径*/
File saveDir = null;
saveDir = new File(UploadUtil.getUploadPath());
if(!saveDir.isDirectory())
saveDir.mkdir();
// 如果文件存在则上传
if (fullFile.exists())
{
File fileOnServer = new File(UploadUtil
.getUploadPath(), fullFile.getName());
//上传
item.write(fileOnServer);
System.out.println("文件"
+ fileOnServer.getName() + "上传成功");
//fileOnServer.getName()==fullFile.getName()
}
}
}
}
} catch (Exception e)
{
e.printStackTrace();
}
} else
{
System.out.println("the enctype must be multipart/form-data");
}
// 取得服务器中已有文件的下載列表
List<String> fileListInServer = new ArrayList<String>();
File dir = new File(UploadUtil.getUploadPath());
String[] children = dir.list();
if (children != null)
{
for (int i = 0; i < children.length; i++)
{
fileListInServer.add(children[i]);
}
}
request.setAttribute("downloadList", fileListInServer);
// 跳回原頁面,将上传目录中已有的文件显示出来
RequestDispatcher dispatcher = request
.getRequestDispatcher("/uploadtoserver.jsp");
dispatcher.forward(request, response);
return;
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException
{
doPost(request, response);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -