首页 > 代码库 > springmvc实现文件上传

springmvc实现文件上传

1 通过commons-fileupload来实现 导入相关jar包

commons-fileupload,commons-io

2 配置springmvc的配置解析器

mvc:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="defaultEncoding" value="http://www.mamicode.com/utf-8"></property>
            <property name="maxUploadSize" value="http://www.mamicode.com/10485760000"></property>
            <property name="maxInMemorySize" value="http://www.mamicode.com/40960"></property>
     </bean>

 

3 jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="http://www.mamicode.com/">
    
    <title>My JSP ‘index.jsp‘ starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="http://www.mamicode.com/styles.css">
    -->
  </head>
  
  <body>
    <form action="upload.do" method="post" enctype="multipart/form-data">
      file:<input type="file" name="file"/> <input type="submit" value="http://www.mamicode.com/上传"/>
      </form>
  </body>
</html>

4 controller代码

@Controller
public class FileUploadController {
    @RequestMapping("/upload")
    public String fileupload(@RequestParam("file")CommonsMultipartFile file,HttpServletRequest req) throws IOException{
        //获取文件名
        //file.getOriginalFilename();
        //获取上传文件的路径
        String path = req.getRealPath("/fileupload");
        InputStream is = file.getInputStream();
        OutputStream os = new FileOutputStream(new File(path,file.getOriginalFilename()));
        int len = 0;
        byte[] buffer = new byte[400];
        while((len=is.read(buffer))!=-1){
            os.write(buffer,0,len);
            os.close();
            is.close();
        }
            
        return "/index.jsp";
    }

}

批量上传的代码

@RequestMapping("/batch")
    public String fileupload(@RequestParam("file")CommonsMultipartFile file[],
            HttpServletRequest req) throws IOException{
        //获取文件名
        //file.getOriginalFilename();
        //获取上传文件的路径
        String path = req.getRealPath("/fileupload");
        for (int i = 0; i < file.length; i++) {            
        InputStream is = file[i].getInputStream();
        OutputStream os = new FileOutputStream(new File(path,file[i].getOriginalFilename()));
        int len = 0;
        byte[] buffer = new byte[400];
        while((len=is.read(buffer))!=-1)
            os.write(buffer,0,len);
            os.close();
            is.close();        
        }
            
        return "/index.jsp";
    }

 

springmvc实现文件上传