spring-mvc-02

本文详细介绍了如何在Spring MVC中配置CommonsMultipartResolver以实现大文件上传,包括设置上传文件的最大容量、使用内存数量及错误处理。同时,讲解了在Tomcat服务器配置中如何调整以支持大文件上传,并提供了Java函数示例代码。

文件上传

配置

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 设置了上传文件的最大容量  -->
        <property name="maxUploadSize" value="524888" />
        <!-- 设置上传操作使用的最大内存数量 -->
        <property name="maxInMemorySize" value="209715" />
        
        <!-- 配置这个后 出现错误之后,那么应该立刻交给一个专门的错误处理操作完成  -->
        <property name="resolveLazily" value="true" />
    </bean>
    
    <bean id="exceptionMapping" 
        class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <property name="exceptionMappings">
            <props>
                <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">
                    /errors.jsp
                </prop>
            </props>
        </property>        
    </bean>

如果上传的是超大文件tomcat的server.xml需配置 maxSwallowSize="-1"

<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" maxSwallowSize="-1"/>

 

java函数

    @RequestMapping(value="upload") 
    public ModelAndView addUpload(Emp emp,MultipartFile photo,
            HttpServletRequest request) {  //此处表接收的参数就是Emp类型
        String fileExt = null;
        if("image/jpg".equals(photo.getContentType())) {
            fileExt="jpg" ;
        }
        String outFilePath = request.getServletContext()
                .getRealPath("/upload/") + UUID.randomUUID() + "." + fileExt ;
        try {
            photo.transferTo(new File(outFilePath));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null ;
    }
    
    @ExceptionHandler
    public ModelAndView exceptionHandle(Exception e) {   //专门处理异常
        System.out.println("********************" + e );
        ModelAndView mav = new ModelAndView("/errors.jsp"); //专门的错误显示页面
        if(e instanceof MaxUploadSizeExceededException ) {  //现在超过了最大的上传文件大小
            mav.addObject("error", "文件太大了!");
        }
        return mav;
    }

转载于:https://www.cnblogs.com/blog-747674599/p/10053481.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值