springmvc 上传文件

1.在spring-config.xml中配置文件上传multipartResolver

<!-- 文件上传 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding"> 
            <value>UTF-8</value> 
        </property> 
        <!-- 30MB 31457280-->
        <property name="maxUploadSize">  
            <value>31457280</value>  
        </property> 
    </bean>   

2. jsp页面中form表单上传

form表单的enctype一定是multipart/form-data并且input的name要是给值

<form method="post" action="user/uploadFile" enctype="multipart/form-data"
 onsubmit="return ck();">
    <input type="file" id="file" name="file">
    <input type="submit" value="上传"/>    
</form>

3.controller

@RequestMapping("/uploadFile")
    public void uploadFile(HttpServletRequest request,Model
     model,HttpServletResponse response) throws IllegalStateException, 
     IOException
    {
        String savePath = "";
        logger.info("----------开始上传----------");
        String destPath = 
        request.getSession().getServletContext().getRealPath("/");
        //这个ARCHITECT是我的项目名称,为保证文件不保存在项目路径下,
        //在项目目录外创建ARCHITECT_upload文件夹
        destPath = destPath.replace("ARCHITECT", "ARCHITECT_upload/");
        File mFile = new File(destPath);
        if (!mFile.exists()) {
            mFile.mkdirs();
        }
        logger.info("----------文件夹目录已创建成功----------");

        CommonsMultipartResolver multipartResolver = new
         CommonsMultipartResolver(request.getSession().getServletContext());
        if (multipartResolver.isMultipart(request)) {
            MultipartHttpServletRequest multipartRequest = 
            (MultipartHttpServletRequest)request;
            Iterator iterator = multipartRequest.getFileNames();
            while (iterator.hasNext()) {
                MultipartFile file = 
                multipartRequest.getFile((String)iterator.next());
                if (null != file) {
                    String fileOrginName = file.getOriginalFilename();
                    System.out.println("orginalName : " + fileOrginName);
                    String serverPath = mFile + "/" + fileOrginName;
                    File serverfile = new File(serverPath);
                    file.transferTo(serverfile);
                    savePath=serverPath.substring
                    (serverPath.indexOf("ARCHITECT_upload"), 
                    serverPath.length());
                    System.out.println(savePath);
                }
            }
        }
        logger.info("----------上传成功 :"+ savePath);
        WriteResponseUtil write = new WriteResponseUtil();
        write.writeResponse(JsonUtil.toJSONString(savePath), response);
        logger.info("上传完毕");
    }












你可能感兴趣的:(文件上传,springMVC,upload,File)