springmvc文件上传

来源:互联网 发布:mac可以玩lucky dog1 编辑:程序博客网 时间:2024/06/07 18:51

首先引入两个maven依赖

  <dependency>      <groupId>commons-fileupload</groupId>      <artifactId>commons-fileupload</artifactId>      <version>1.2</version>    </dependency>    <dependency>      <groupId>commons-io</groupId>      <artifactId>commons-io</artifactId>      <version>1.3.2</version>    </dependency>

springmvc配置文件:

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">        <property name="maxUploadSize" value="104857600" />        <property name="maxInMemorySize" value="4096" />        <property name="defaultEncoding" value="UTF-8"></property>    </bean>

随后写一个jsp,发送请求,务必记住要加 enctype

<form action="/fileupload/do3.do" method="post"enctype="multipart/form-data">    选择文件:<input type="file" name="file"/><br/>    <input type="submit" value="提交" /></form>

controller层
有3个方法

@Controller@RequestMapping("/fileupload")public class TestFileUpLoadController {    private static final Logger log= LoggerFactory.getLogger(TestFileUpLoadController.class);    @RequestMapping(value = "/file.do",method = RequestMethod.POST)    public String fileUpload(@RequestParam(value="file",required = false)MultipartFile files[]) throws IOException {        for(MultipartFile file : files){            System.out.println(file.getOriginalFilename());//得到文件的原始名字            System.out.println(file.getName());//得到文件的字段的名字”file            InputStream in = file.getInputStream();            OutputStream out = new FileOutputStream("d:/"+file.getOriginalFilename());            int len=0;            byte[] buf =new byte[1024];            while((len=in.read(buf))!=-1){                out.write(buf);                out.flush();            }            out.close();            in.close();        }        return "fileSuccess";    } ```    @RequestMapping(value="do2.do",method = RequestMethod.POST)    public String  fileUpload(@RequestParam("file") CommonsMultipartFile file) throws IOException {        //用来检测程序运行时间        long  startTime=System.currentTimeMillis();        System.out.println("fileName:"+file.getOriginalFilename());        try {            //获取输出流            OutputStream os=new FileOutputStream("D:/"+new Date().getTime()+file.getOriginalFilename());            //获取输入流 CommonsMultipartFile 中可以直接得到文件的流            InputStream is=file.getInputStream();            int temp;            //一个一个字节的读取并写入            while((temp=is.read())!=(-1))            {                os.write(temp);            }            os.flush();            os.close();            is.close();        } catch (FileNotFoundException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        long  endTime=System.currentTimeMillis();        System.out.println("方法一的运行时间:"+String.valueOf(endTime-startTime)+"ms");        return "fileSuccess";    }
   @RequestMapping(value = "/do3.do",method = RequestMethod.POST)    public String  fileUpload2(@RequestParam("file") CommonsMultipartFile file) throws IOException {        long  startTime=System.currentTimeMillis();        System.out.println("fileName:"+file.getOriginalFilename());        String path="D:/"+new Date().getTime()+file.getOriginalFilename();        File newFile=new File(path);        //通过CommonsMultipartFile的方法直接写文件(注意这个时候)        file.transferTo(newFile);        long  endTime=System.currentTimeMillis();        System.out.println("方法二的运行时间:"+String.valueOf(endTime-startTime)+"ms");        return "fileSuccess";    }}
原创粉丝点击