Springmvc文件上传

来源:互联网 发布:淘宝企业店铺认证复核 编辑:程序博客网 时间:2024/06/05 07:26

其实springmvc的上传很简单,做一下笔记哈

首先引入jar包commons-fileupload.jar和commons-logging-1.1.jar,我这里都有http://download.csdn.net/detail/maxldwy/8248531

然后spring配置文件里加入:

<!-- 处理文件上传 --><bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="utf-8" /> <!-- 默认编码 (ISO-8859-1) --><property name="maxInMemorySize" value="10240" /> <!-- 最大内存大小 (10240)--><property name="uploadTempDir" value="/tmp/" /> <!-- 上传后的临时文件目录) --><property name="maxUploadSize" value="-1" /> <!-- 最大文件大小,-1为无限止(-1) --></bean> 
接着jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>测试springmvc中上传的实现</title></head><body><form action="upload"  method="post" enctype="multipart/form-data"><input type="text" name="name" /><input type="file" name="file" /><input type="submit" /></form></body></html>
最后编写controller:

package com.wy.controller;import java.io.File;import java.util.Date;import javax.servlet.ServletContext;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.context.ServletContextAware;import org.springframework.web.multipart.commons.CommonsMultipartFile;import org.springframework.web.servlet.ModelAndView;@Controllerpublic class FileUploadController implements ServletContextAware {private ServletContext servletContext;public void setServletContext(ServletContext context) {this.servletContext  = context;}//也可以不在class上面配置@RequestMapping,直接在方法上配置,这样就直接拦截/url到方法@RequestMapping("/gotoupload")     public ModelAndView upload(){  ModelAndView mav = new ModelAndView();        mav.setViewName("DiseasePage/Upload");return mav;    } @RequestMapping(value="/upload", method = RequestMethod.POST)//post请求才能到这里public String handleUploadData(String name,@RequestParam("file") CommonsMultipartFile file){//@RequestParam("file")@RequestParam("file")上传必须写if (!file.isEmpty()) {   String path = this.servletContext.getRealPath("/uploadFile/");  //获取本地路径   System.out.println(path);   String fileName = file.getOriginalFilename();   String fileType = fileName.substring(fileName.lastIndexOf("."));//获得类型   System.out.println(fileType);    File file2 = new File(path,new Date().getTime() + fileType); //新建一个文件   try {    file.getFileItem().write(file2); //将上传文件写入文件夹中   } catch (Exception e) {    e.printStackTrace();   }   return "DiseasePage/Upload_ok";}else{return "redirect:404.jsp";}}}
对了,在工程中建立tmp和UploadFile俩个文件夹就可以实现啦~~~



0 0
原创粉丝点击