图片、文件上传并且压缩!

这段代码也是百度看来的!自己做了一些改动,如果是layui实现上传的话就更好用,配合layui的JS来实现就更简单了!

看代码!

File tempPathFile;  
	@RequestMapping("upload")
	@ResponseBody
	public Map<String, Object> uploadImg(Long classesId,HttpServletRequest request) throws Exception{
		  try {  
	            // Create a factory for disk-based file items  
	            DiskFileItemFactory factory = new DiskFileItemFactory();  
	  
	            // Set factory constraints  
	            factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb  
	            factory.setRepository(tempPathFile);// 设置缓冲区目录  
	  
	            // Create a new file upload handler  
	            ServletFileUpload upload = new ServletFileUpload(factory);  
	  
	            // Set overall request size constraint  
	            upload.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB  
	  
	            List<FileItem> items = upload.parseRequest(request);// 得到所有的文件  
	           
	            System.out.println(items.size());
	            Iterator<FileItem> i = items.iterator(); 
	            Map<String, Object> result = new HashMap<>();
	            while (i.hasNext()) {  
	                FileItem fi = (FileItem) i.next();  
	                String fileName = fi.getName();  
	                if (fileName != null) {  
	                    File fullFile = new File(new String(fi.getName().getBytes(), "utf-8")); // 解决文件名乱码问题  
	                    
	                    File url = new File(config.getUploadDir()); 
	                    if(!url.exists()) {
	                    	url.mkdirs();
	                    }
	                    System.out.println(config.getUploadDir()+"//"+fullFile.getName());
	                    File savedFile = new File(config.getUploadDir()+"/"+fullFile.getName());
	                    Thumbnails.of(fi.getInputStream()).size(400, 400).toFile(savedFile);
	                    //File savedFile = new File(config.getUploadDir(), fullFile.getName());  
	                    result.put("name", fullFile.getName());
	                    result.put("code", 1);
	                    /*fi.write(savedFile);  */
	                }  
	                
	            }  
	            return result; 
	        } catch (Exception e) {  
	  e.printStackTrace();
	        }
		return null;  
	}

至于前端代码的话layui有自己的上传!其他的上传就根据数据来看了!
不喜勿喷!我是个小萌新,我自己上传的代码都比较简单都能看的懂!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值