SpringMVC文件上传原理及实现过程解析

这篇文章主要介绍了SpringMVC文件上传原理及实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、文件上传的必要前提

A form 表单的 enctype 取值必须是:multipart/form-data(认值是:application/x-www-form-urlencoded) enctype:是表单请求正文的类型

B method 属性取值必须是 Post

C 提供一个文件选择域 input type=file

二、借助第三方组件实现文件上传

三、

/** * springmvc跨服务器上传文件 * @return */ @RequestMapping("/testFileUpload1") public String testFileUpload1(multipartfile upload) throws IOException { System.out.println("跨服务器文件上传..."); // 定义上传文件服务器路径 String path = "http://localhost:9090/uploads/"; // 说明上传文件项 // 获取上传文件名称 String filename = upload.getoriginalFilename(); // 把文件名称设置唯一值,uuid String uuid = UUID.randomUUID().toString().replace("-", ""); filename = uuid+"_"+filename; // 创建客户端的对象 Client client = Client.create(); // 和图片服务器进行连接 WebResource webResource = client.resource(path + filename); // 上传文件 webResource.put(upload.getBytes()); return "success"; } /** * * 这里的upload必须与index.jsp的upload一致 * * springmvc文件上传 * @return */ @RequestMapping("/testFileUpload") public String testFileUpload(HttpServletRequest request, multipartfile upload) throws IOException { // 使用fileupload组件完成文件上传 // 上传的位置(获取上传到服务器上的文件路径) String path = request.getSession().getServletContext().getRealPath("/uploads/"); // 判断,该路径是否存在 File file = new File(path); if(!file.exists()){ file.mkdir(); } // 说明上传文件项 // 获取上传文件名称 String filename = upload.getoriginalFilename(); // 把文件名称设置唯一值,uuid String uuid = UUID.randomUUID().toString().replace("-", ""); filename = uuid+"_"+filename; // 完成文件上传 upload.transferTo(new File(path,filename)); return "success"; }

四、在springmvc.xml配置文件解析器

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...