spring mvc 多文件 上传 按天生成目录 ,删除,限制为图片代码,

package com.xyt.cyt.util;

import java.io.File;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import javax.servlet.http.HttpServletRequest;

import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
/**
 *  多文件上传
 * @author liangrui 
 *
 */
public class FileUpload {
	
	 //文件信息
	 public static final String REALNAME = "realName";  //真实名字
	 public static final String STORENAME = "storeName"; //存储名字 
	 public static final String SIZE = "size";  
	// private static final String SUFFIX = "suffix";  
	// private static final String CONTENTTYPE = "contentType";  
	 public static final String CREATETIME = "createTime";  
	 public static final String UPLOADDIR = "public/certificate/temp/";  //文件所在目录	 uploadDir/
	 public static final String ABSOLUTEPATH="absolutePath";//保存文件 绝对路径  absolute
	 public static final String RELATIVEPATH="relativePath"; //相对 路径	 relative
	
	 
	 
	//多文件上传
	public static List<Map<String, Object>> fileUpload(HttpServletRequest request) throws IllegalStateException, IOException{
	
		//上传文件的解析器
		CommonsMultipartResolver mutiparRe=new CommonsMultipartResolver();
		if(mutiparRe.isMultipart(request)){//如果是文件类型的请求
			
		//保存文件信息
		List<Map<String, Object>> fileInfo = new ArrayList<Map<String, Object>>();  
		
		MultipartHttpServletRequest mhr=(MultipartHttpServletRequest) request;	
		
		 //创建子目录 取当前日期
		  DateFormat df= new SimpleDateFormat("yyyyMMdd");
		   String dirs=df.format(new Date());
		
		//获取路径 
		 String uploadDir = request.getSession().getServletContext()  
	             .getRealPath("/")  
	             + FileUpload.UPLOADDIR+dirs; 
		
		 //如果目录不存在,创建一个目录
		     if (!new File(uploadDir).exists()) {  
		    	 File dir= new File(uploadDir);				
		    	 dir.mkdirs();  
		     }  
	     
		//跌带文件名称
		 Iterator<String> it= mhr.getFileNames();		
			while(it.hasNext()){
				//获取一个文件
				MultipartFile mf=mhr.getFile(it.next());
				if(mf!=null){
					//获取原文件名
					String	resFileName=mf.getOriginalFilename();
					//保存的文件名
					String fileName=rename(resFileName);					
					//路径加文件名					
					File outFile=new File(uploadDir+"/"+fileName);
					//保存到
					mf.transferTo(outFile);	
					
					//返回文件信息					
					Map<String, Object> map = new HashMap<String, Object>(); 
		            map.put(FileUpload.REALNAME, resFileName);  
		            map.put(FileUpload.STORENAME, fileName);  
		            map.put(FileUpload.SIZE, mf.getSize());  //new File(fileName).length()		          
		            map.put(FileUpload.CREATETIME, new Date()); 
		            //map.put(FileUpload.UPLOADDIR, uploadDir);
		            map.put(FileUpload.ABSOLUTEPATH, uploadDir+fileName);//文件的绝对路径
		            map.put(FileUpload.RELATIVEPATH, "/"+FileUpload.UPLOADDIR+fileName);//文件的相对路径
		            fileInfo.add(map);
	  }
   }

			return fileInfo;
  }
		return null;
 }
	
	
	
	
	
	//更改文件名称
	public static String rename(String name) {  
		  
		//时分秒
      /*  Long now = Long.parseLong(new SimpleDateFormat("yyyyMMddHHmmss")  
                .format(new Date()));          
        Long random = (long) (Math.random() * now);
        String fileName = now + "" + random;  
 */
        
		//uuid生成文件名
        UUID uuid=UUID.randomUUID();
        
       String uustr=uuid.toString();
  
        if (name.indexOf(".") != -1) {  
        	uustr += name.substring(name.lastIndexOf("."));  
        }  
  
        return uustr;  
    }  
	
}


xml

<bean id="multipartResolver"
	class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
	<property name="maxUploadSize" value="100000000" />
	
       <property name="defaultEncoding" value="UTF-8" />
</bean>


测试

//文件上传==== 测试
	@RequestMapping
	public String fileuploadTest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		System.out.println("-----------statr");
		
		List<Map<String, Object>> fileInfo=FileUpload.fileUpload(request);
		if(fileInfo!=null&&fileInfo.size()>0){
			
			for(Map<String, Object> map:fileInfo){
				System.out.println("filePath:"+map.get(FileUpload.RELATIVEPATH));
				System.out.println("STORENAME:"+map.get(FileUpload.STORENAME));
				System.out.println("ABSOLUTEPATH:"+map.get(FileUpload.ABSOLUTEPATH));
				System.out.println("SIZE:"+map.get(FileUpload.SIZE));
			}
		
		}
		
		request.setAttribute("fileInfo", fileInfo);
		
		return "/showimg";
		
	}


因为在项目中用到,不能给出完整的代码,见凉,我相信有点基础的朋友都能看懂........

spring mvc 多文件 上传 按天生成目录 ,删除,限制为图片代码,

上一篇:HTML5实战与剖析之CSS选择器——getElementsByClassName()方法


下一篇:JS的substr与substring的区别