?? 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");
// 文件上傳部分
//判斷請求消息中的內(nèi)容是否是“multipart/form-data”類型
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart == true)
{
try
{
//創(chuàng)建一個(gè)磁盤文件項(xiàng)目工廠
FileItemFactory factory = new DiskFileItemFactory();
//創(chuàng)建文件上傳管理器
ServletFileUpload upload = new ServletFileUpload(factory);
// 得到所有的表單域,它們目前都被當(dāng)作FileItem
List<FileItem> fileItems = upload.parseRequest(request);
Iterator<FileItem> iter = fileItems.iterator();
// 依次處理每個(gè)表單域
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");
}
// 取得服務(wù)器中已有文件的下載列表
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);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -