打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SpringMVC上传文件demo(转)
  1. package com.jadyer.controller;  
  2.   
  3. import java.io.File;  
  4. import java.io.IOException;  
  5. import java.util.HashMap;  
  6. import java.util.Map;  
  7.   
  8. import javax.servlet.http.HttpServletRequest;  
  9.   
  10. import org.apache.commons.io.FileUtils;  
  11. import org.springframework.stereotype.Controller;  
  12. import org.springframework.ui.Model;  
  13. import org.springframework.web.bind.annotation.RequestMapping;  
  14. import org.springframework.web.bind.annotation.RequestMethod;  
  15. import org.springframework.web.bind.annotation.RequestParam;  
  16. import org.springframework.web.multipart.MultipartFile;  
  17.   
  18. import com.jadyer.model.User;  
  19.   
  20. /** 
  21.  * SpringMVC中的文件上传 
  22.  *  
  23.  * @see 第一步:由于SpringMVC使用的是commons-fileupload实现,故将其组件引入项目中 
  24.  * @see         这里用到的是commons-fileupload-1.2.2.jar和commons-io-2.0.1.jar 
  25.  * @see 第二步:在####-servlet.xml中配置MultipartResolver处理器。可在此加入对上传文件的属性限制 
  26.  * @see 第三步:在Controller的方法中添加MultipartFile参数。该参数用于接收表单中file组件的内容 
  27.  * @see 第四步:编写前台表单。注意enctype="multipart/form-data"以及<input type="file" name="****"/> 
  28.  * @author 宏宇 
  29.  * @create May 12, 2012 1:26:21 AM 
  30.  */  
  31. @Controller  
  32. @RequestMapping("/user")  
  33. public class UserController {  
  34.     private final static Map<String,User> users = new HashMap<String,User>();  
  35.       
  36.     //模拟数据源,构造初始数据  
  37.     public UserController(){  
  38.         users.put("张起灵"new User("张起灵""闷油瓶""02200059""menyouping@yeah.net"));  
  39.         users.put("李寻欢"new User("李寻欢""李探花""08866659""lixunhuan@gulong.cn"));  
  40.         users.put("拓拔野"new User("拓拔野""搜神记""05577759""tuobaye@manhuang.cc"));  
  41.         users.put("孙悟空"new User("孙悟空""美猴王""03311159""sunhouzi@xiyouji.zh"));  
  42.     }  
  43.       
  44.     @RequestMapping("/list")  
  45.     public String list(Model model){  
  46.         model.addAttribute("users", users);  
  47.         return "user/list";  
  48.     }  
  49.       
  50.     @RequestMapping(value="/add", method=RequestMethod.GET)  
  51.     public String addUser(){  
  52.         return "user/add";  
  53.     }  
  54.       
  55.     @RequestMapping(value="/add", method=RequestMethod.POST)  
  56.     public String addUser(User user, @RequestParam MultipartFile[] myfiles, HttpServletRequest request) throws IOException  
  57.     {  
  58.         //如果只是上传一个文件,则只需要MultipartFile类型接收文件即可,而且无需显式指定@RequestParam注解  
  59.         //如果想上传多个文件,那么这里就要用MultipartFile[]类型来接收文件,并且还要指定@RequestParam注解  
  60.         //并且上传多个文件时,前台表单中的所有<input type="file"/>的name都应该是myfiles,否则参数里的myfiles无法获取到所有上传的文件  
  61.         for(MultipartFile myfile : myfiles){  
  62.             if(myfile.isEmpty()){  
  63.                 System.out.println("文件未上传");  
  64.             }else{  
  65.                 System.out.println("文件长度: " + myfile.getSize());  
  66.                 System.out.println("文件类型: " + myfile.getContentType());  
  67.                 System.out.println("文件名称: " + myfile.getName());  
  68.                 System.out.println("文件原名: " + myfile.getOriginalFilename());  
  69.                 System.out.println("========================================");  
  70.                 //如果用的是Tomcat服务器,则文件会上传到\\%TOMCAT_HOME%\\webapps\\YourWebProject\\WEB-INF\\upload\\文件夹中  
  71.                 String realPath = request.getSession().getServletContext().getRealPath("/WEB-INF/upload");  
  72.                 //这里不必处理IO流关闭的问题,因为FileUtils.copyInputStreamToFile()方法内部会自动把用到的IO流关掉,我是看它的源码才知道的  
  73.                 FileUtils.copyInputStreamToFile(myfile.getInputStream(), new File(realPath, myfile.getOriginalFilename()));  
  74.             }  
  75.         }  
  76.         users.put(user.getUsername(), user);  
  77.         return "redirect:/user/list";  
  78.     }  
  79. }  

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SpringMvc实现上传图片的三种方法学习
通用上传下载组件commons-fileupload(基于SpringMVC框架)
spring boot+thymeleaf 文件上传,下载功能实现
用jspsmartupload进行上传下载(数据库)
[CKEditor那点事儿]使用java开发ckeditor的浏览服务器文件功能
bufferedReader和bufferedWriter用法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服