⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uploadfileservlet.java

📁 文件上传下载(JSP)
💻 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 + -