SpringMvc文件上传

来源:互联网 发布:dht网络标示怎么下载 编辑:程序博客网 时间:2024/06/14 08:46

需要的jar包

commons-fileupload-1.2.1.jar

commons-io-2.2.jar




index.jsp

 <form action="C/upload.do" method="post" enctype="multipart/form-data">

  文件:<input type="file" name="img">

 上传: <input type="submit" value="上传">


控制器

CController.java

package controller;

import java.io.File;
import java.io.IOException;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

@Controller
@RequestMapping("/C")
public class CController {
   @RequestMapping(value="index")
    public String index(){
        return "index";
    }
     @RequestMapping(value="upload.do")
     /*
      * 这里的参数名一定要跟文件上传中的 file name名称一致
      * 否则需要加@RequestParam  

      */
    public String upload(MultipartFile img){
        String path="E:/image";
        //获得文件的原始路径
        String filename = img.getOriginalFilename();
        System.out.println("文件原始路径="+filename);
        String[] paths = filename.split("[.]");
        filename=paths[0]+"-"+System.currentTimeMillis()+"."+paths[1];
        System.out.println(filename);
        File file=new File(path, filename);
        try {

              //把传过来的img图片通过的流的方式写入指定的路径

            img.transferTo(file);
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return "/loadsuccess";
    }
}



最后在xxx-servlet.xml配置支持文件上传的 MultipartResolver

<bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>

注意需要在xxx-servlet.xml中配置支持mvc注解驱动

  <mvc:annotation-driven/>