springmvc 文件上传及压缩的配置详解

一。使用commons-io.jar,  commons-fileupload.jar 及   ImageUtils.java进行压缩上传,配置如下。

    1.form的提交的类型 及提交的方式: enctype="multipart/form-data" method="post" 。

        <form  id="form1" action="myFileUploadController/save.do"  enctype="multipart/form-data" method="post" >


   2.文件解析器,id必须为multipartResolver(注意)

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

  3. MyFileUplaodController.java的 method 处理

       

@RequestMapping(value="save1",method=RequestMethod.POST)  
	    public ModelAndView upload2(HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException{  
	       
	            //进行转换  
	            MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)(request);  
	            //获取所有文件名称  
	            Iterator<String> it = multiRequest.getFileNames();  
	            while(it.hasNext()){  
	                //根据文件名称取文件  
	                MultipartFile file = multiRequest.getFile(it.next());  
	                String fileName = file.getOriginalFilename();  
	                String localPath = "D:/temp/" + fileName;  
	                File newFile = new File(localPath);  
	                //上传的文件写入到指定的文件中  
	                file.transferTo(newFile);  
	            } 
	            System.out.println("文件上2传成功-------");
	            return new ModelAndView("uploadSuccess");  
	        
	        
	    }
  //压缩上传,

CommonsMultipartFile,直接接受

@RequestMapping(value="save",method=RequestMethod.POST)
	public  ModelAndView  save(HttpServletRequest request,HttpServletResponse response
			,@RequestParam("file") CommonsMultipartFile mFile) throws Exception{
		String mFileName=mFile.getOriginalFilename();
		String savePath="d:/temp/"+mFileName;
		System.out.println(savePath);

                //将mutilpartFile 转换成file,以便获取临时文件的地址
		CommonsMultipartFile cFile=(CommonsMultipartFile)multipartFile;
      		DiskFileItem  df=( DiskFileItem)cFile.getFileItem();
      		File ioF = df.getStoreLocation();


		//压缩方法
		String timeStr=new SimpleDateFormat("yyyyMMDDHHmmss").format(new Date());
		String  dest=mFileName.substring(mFileName.lastIndexOf(".")+1);
		String destPath="d:/temp/"+timeStr+"/"+timeStr+"."+dest;
		File  destFile=new File(destPath);
		if(!destFile.exists()){
			destFile.mkdirs();
		}
		//1.按指定起点坐标和宽高切割
		//ImageUtils.cut(ioF.getAbsolutePath(), destPath,0,0,800, 200);
		//2.按高度和宽度缩放
		ImageUtils.scale2(ioF.getAbsolutePath(), destPath, 200, 800, true);
		
		System.out.println("namepassword上传成功");
		return new ModelAndView("index");
	}
4.ImageUtils.java文件下载链接:http://download.csdn.net/download/yulei2008_/9579897

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值