SpringMVC上传文件

springmvc-servlet.xml中添加配置

    <!-- 文件上传表单的视图解析器 -->
    <bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- one of the properties available; the maximum file size in bytes -->
        <property name="maxUploadSize" value="204800"/>
    </bean>

前端页面代码如下

<form action="/submitFile.do" method="post" enctype="multipart/form-data">
    <label style="background-color: aqua">文件上传
        <input name="file" type="file" onchange="filechange(this)" hidden/><input type="text"/></label>
    <br/>
    <input type="submit" value="上传"/>
</form>
<hr/>
<form action="/submitFile1.do" method="post" enctype="multipart/form-data">
    <label style="background-color: aqua">文件上传1
        <input name="files" type="file" onchange="filechange(this)" multiple hidden/><input type="text"/></label>
    <br/>
    <input type="submit" value="上传"/>
</form>
<hr/>
<form action="/submitFile2.do" method="post" enctype="multipart/form-data">
    <label style="background-color: aqua">文件上传2
        <input name="file" type="file" onchange="filechange(this)" hidden/><input type="text"/></label>
    <br/>
    <input type="submit" value="上传"/>
</form>
<script type="text/javascript">
    function filechange(obj) {
        $(obj).next(":input").val($(obj).val());
    }
</script>
三种上传,type file需要有name,且和Controller中一致

后台代码如下,如果是上传多文件,必须带有@RequestParam

@RequestMapping("/submitFile")
    public void submitFile(HttpServletRequest request,@RequestParam MultipartFile file){
        try {
            BufferedInputStream bufferedInputStream=new BufferedInputStream(file.getInputStream());
            String filePath="F:\\IDEAWeb\\MavenSpringMVC\\target\\test.txt";
            BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(new FileOutputStream(filePath));
            byte[] buffer=new byte[1024];
            int l=0;
            while ((l=bufferedInputStream.read(buffer))!=-1){
                bufferedOutputStream.write(buffer,0,l);
                bufferedOutputStream.flush();
            }
            bufferedOutputStream.close();
            bufferedInputStream.close();
        }catch (Exception ex){
            ex.printStackTrace();
        }
    }

    @RequestMapping("/submitFile1")
    public void submitFile1(HttpServletRequest request,@RequestParam MultipartFile[] files){
        try {
            BufferedInputStream bufferedInputStream=new BufferedInputStream(files[0].getInputStream());
            String filePath="F:\\IDEAWeb\\MavenSpringMVC\\target\\test.txt";
            BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(new FileOutputStream(filePath));
            byte[] buffer=new byte[1024];
            int l=0;
            while ((l=bufferedInputStream.read(buffer))!=-1){
                bufferedOutputStream.write(buffer,0,l);
                bufferedOutputStream.flush();
            }
            bufferedOutputStream.close();
            bufferedInputStream.close();
        }catch (Exception ex){
            ex.printStackTrace();
        }
    }

    @RequestMapping("/submitFile2")
    public void submitFile2(HttpServletRequest request){
        try {
            MultipartHttpServletRequest multiRequest=(MultipartHttpServletRequest)request;
            MultipartFile multipartFile=multiRequest.getFile("file");
            BufferedInputStream bufferedInputStream=new BufferedInputStream(multipartFile.getInputStream());
            String filePath="F:\\IDEAWeb\\MavenSpringMVC\\target\\test.txt";
            BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(new FileOutputStream(filePath));
            byte[] buffer=new byte[1024];
            int l=0;
            while ((l=bufferedInputStream.read(buffer))!=-1){
                bufferedOutputStream.write(buffer,0,l);
                bufferedOutputStream.flush();
            }
            bufferedOutputStream.close();
            bufferedInputStream.close();
        }catch (Exception ex){
            ex.printStackTrace();
        }
    }
三种方法
posted @ 2018-01-25 16:54  jiapeng  阅读(292)  评论(0编辑  收藏  举报