zoukankan      html  css  js  c++  java
  • SpringMVC文件上传

    springmvc.xml添加如下代码:

    <bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!-- 设置上传文件的最大尺寸为1MB -->
        <property name="maxUploadSize">
            <value>1048576</value>
        </property>
    </bean>

    注意这里的文件尺寸实际上只的是所以文件总大小,如果配置了文件大小就以为这你需要配置异常信息控制,所以需要配置异常显示:

    <!-- SpringMVC在超出上传文件限制时,会抛出org.springframework.web.multipart.MaxUploadSizeExceededException -->
        <!-- 该异常是SpringMVC在检查上传的文件信息时抛出来的,而且此时还没有进入到Controller方法中 -->
        <bean id="exceptionResolver"
            class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
            <property name="exceptionMappings">
                <props>
                    <!-- 遇到MaxUploadSizeExceededException异常时,自动跳转到/WEB-INF/jsp/error_fileupload.jsp页面 -->
                    <prop
                        key="org.springframework.web.multipart.MaxUploadSizeExceededException">error_fileupload</prop>
                </props>
            </property>
        </bean>

    或者偷懒点,不设置大小,则最终默认是值为不限制。如果非要控制返回信息,可以考虑在地应以的异常处理中返回指定格式数据,例如JSON

    配置完了页面上一如既往的需要再form表单中增加:enctype="multipart/form-data"

    然后就是需要处理的action了,可以有两种方式

    第一种方式:

    public String login( @RequestParam MultipartFile file, Model model) {
    ………………
    }

    其中file的名字必须保证与<input type=file>中的那么属性值保持一致,若果是多文件上传,则考虑使用

        public String login(@Valid UserInfo userInfo, BindingResult result, @RequestParam MultipartFile[] files, Model model) {
    ………………
    }

    第二种方式:

    public ModelAndView handleRequest(HttpServletRequest request,   
                HttpServletResponse response) throws Exception {   
            // 转型为MultipartHttpRequest:   
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;   
            // 获得文件:   
            MultipartFile file = multipartRequest.getFile(" file ");  
        }

    这样也可以获取到文件

    其实刚才首先需要配置是加入两个 jar包:

    commons-fileupload-1.2.2.jar

    commons-io-2.1.jar

  • 相关阅读:
    mac os programming
    Rejecting Good Engineers?
    Do Undergrads in MIT Struggle to Obtain Good Grades?
    Go to industry?
    LaTex Tricks
    Convert jupyter notebooks to python files
    How to get gradients with respect to the inputs in pytorch
    Uninstall cuda 9.1 and install cuda 8.0
    How to edit codes on the server which runs jupyter notebook using your pc's bwroser
    Leetcode No.94 Binary Tree Inorder Traversal二叉树中序遍历(c++实现)
  • 原文地址:https://www.cnblogs.com/ShanHeDiao/p/5085599.html
Copyright © 2011-2022 走看看