Java上传

来源:互联网 发布:qq飞车指挥官改装数据 编辑:程序博客网 时间:2024/06/05 07:55

1.用到apache的commons-fileupload-1.2.2.jar,commons-io-1.4.jar

package com.jetsum.util;import java.io.File;import java.util.Iterator;import java.util.List;import javax.servlet.http.HttpServletRequest;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;public class FileUploadUtil {private List<FileItem> fileItems;/** * 构造函数初始化fileItems对象,保存上传的文件信息。 * @param request * @throws Exception */@SuppressWarnings("unchecked")public FileUploadUtil(HttpServletRequest request) throws Exception{boolean isMultipart = ServletFileUpload.isMultipartContent(request);if (isMultipart == true) {try {FileItemFactory factory = new DiskFileItemFactory();ServletFileUpload upload = new ServletFileUpload(factory);setFileItems(upload.parseRequest(request));} catch (Exception e) {e.printStackTrace();}} else {throw new Exception("the enctype must be multipart/form-data");}}/** * 将上传的文件保存在指定目录下,fileFiledName对应表单文件域名称,path对应保存目录。 * @param fileFiledName * @param path * @return * @throws Exception */public File saveFile(String fileFiledName,String path) throws Exception{File file = null;Iterator<FileItem> iter = fileItems.iterator();while (iter.hasNext()) {FileItem item = (FileItem) iter.next();if (!item.isFormField()&&!item.getName().equals("")) {if(fileFiledName.equals(item.getFieldName())){file = FileUtil.createNewFile(path+"/"+item.getName());item.write(file);}}}return file;}/** * 将上传的文件全部保存在指定目录下,path为保存文件的目录。 * @param path * @throws Exception */public void saveFile(String path) throws Exception{Iterator<FileItem> iter = fileItems.iterator();while (iter.hasNext()) {FileItem item = (FileItem) iter.next();if (!item.isFormField()&&!item.getName().equals("")) {File file = FileUtil.createNewFile(path+"/"+item.getName());item.write(file);}}}public void setFileItems(List<FileItem> fileItems) {this.fileItems = fileItems;}public List<FileItem> getFileItems() {return fileItems;}}