flame.liu 2023-06-07 21:37 采纳率: 75%
浏览 100
已结题

使用spring-web 6版本,在SSM项目中上传图片错误

SSM项目中关于图片上传的错误。
首先在pom文件中采用spring-web 6,然后引用了上传文件必须的两个jar,部分代码如下:

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>6.0.6</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>6.0.9</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>6.0.6</version>
        </dependency>

        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.5</version>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>

然后在spring-config.xml文件中配置文件上传对象

    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="defaultEncoding" value="utf-8"/>
        <property name="maxUploadSize" value="500000"/>
    </bean>

发现上面代码中commons.CommonsMultipartResolver,defaultEncoding,maxUploadSize被标红色编译不通过,
后来检查外部库中:org.springframework.web.multipart确实不存在commons.CommonsMultipartResolver。
查到网上有说到把spring-web的版本改到5.0的,发现改了之后确实有org.springframework.web的5.0版本中有CommonsMultipartResolver这个对象了,但是项目之前都已经做了一部分,改成5.0后其它地方出错了。
这里想请问各位大咖,spring-web 6.0.6版本应该怎么实现文件上传的对象?

  • 写回答

1条回答 默认 最新

  • 程序yang 全栈领域优质创作者 2023-06-08 09:47
    关注

    以 Spring Framework 5 为基础的文件上传配置在 Spring Framework 6 中已经不再使用 CommonsMultipartResolver。

    在 Spring Framework 6 中,建议使用新的 StandardServletMultipartResolver,它是基于 Servlet 3.0 javax.servlet.http.Part 接口实现的。以下是一个示例配置:

    仅供参考(Spring Framework 6 还引入了新的 MultipartResolver 接口,您可以自定义实现以适应特定的文件上传需求。)

    <bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
        <property name="maxUploadSize" value="500000" />
        <property name="maxInMemorySize" value="4096" />
    </bean>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月20日
  • 已采纳回答 6月12日
  • 创建了问题 6月7日