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

📄 uploadfileservlet.java

📁 java文件上传功能,有批量上传的功能,java文件上传功能,有批量上传的功能
💻 JAVA
字号:
package com.sitinspring.action;

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 com.sitinspring.util.UploadUtil;

/**
 * 用于文件上传处理的Servlet
 * @author sitinspring
 *
 * @date 2008-2-12
 */
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");

		// 文件上傳部分
		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();
						if (fileName != null) {
							File fullFile = new File(item.getName());							
														
							// 如果文件存在则上传
							if(fullFile.exists()){
								File fileOnServer = new File(UploadUtil.getUploadPath(),
										fullFile.getName());
								item.write(fileOnServer);
								
								System.out.println("文件"+fileOnServer.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("/web/page/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 + -