spring-test依赖中MockMultipartFile冲突问题_mockmultipartfile依赖包-程序员宅基地

技术标签: spring  java  

file转MultipartFile的时候会用到MockMultipartFile

当你导入spring-test依赖的时候 会跟某些依赖冲突(暂未找到具体是哪个冲突)

解决方法 重写一个类去实现MultipartFile接口

直接用MockMultipartFile的源码

public class MultipartFileDto implements MultipartFile {
    private final String name;

    private String originalFilename;

    private String contentType;

    private final byte[] content;

    /**
     * Create a new MultipartFileDto with the given content.
     * @param name the name of the file
     * @param content the content of the file
     */
    public MultipartFileDto(String name, byte[] content) {
        this(name, "", null, content);
    }

    /**
     * Create a new MultipartFileDto with the given content.
     * @param name the name of the file
     * @param contentStream the content of the file as stream
     * @throws IOException if reading from the stream failed
     */
    public MultipartFileDto(String name, InputStream contentStream) throws IOException {
        this(name, "", null, FileCopyUtils.copyToByteArray(contentStream));
    }

    /**
     * Create a new MultipartFileDto with the given content.
     * @param name the name of the file
     * @param originalFilename the original filename (as on the client's machine)
     * @param contentType the content type (if known)
     * @param content the content of the file
     */
    public MultipartFileDto(String name, String originalFilename, String contentType, byte[] content) {
        this.name = name;
        this.originalFilename = (originalFilename != null ? originalFilename : "");
        this.contentType = contentType;
        this.content = (content != null ? content : new byte[0]);
    }

    /**
     * Create a new MultipartFileDto with the given content.
     * @param name the name of the file
     * @param originalFilename the original filename (as on the client's machine)
     * @param contentType the content type (if known)
     * @param contentStream the content of the file as stream
     * @throws IOException if reading from the stream failed
     */
    public MultipartFileDto(String name, String originalFilename, String contentType, InputStream contentStream)
            throws IOException {

        this(name, originalFilename, contentType, FileCopyUtils.copyToByteArray(contentStream));
    }

    @Override
    public String getName() {
        return this.name;
    }

    @Override
    public String getOriginalFilename() {
        return this.originalFilename;
    }

    @Override
    public String getContentType() {
        return this.contentType;
    }

    @Override
    public boolean isEmpty() {
        return (this.content.length == 0);
    }

    @Override
    public long getSize() {
        return this.content.length;
    }

    @Override
    public byte[] getBytes() throws IOException {
        return this.content;
    }

    @Override
    public InputStream getInputStream() throws IOException {
        return new ByteArrayInputStream(this.content);
    }

    @Override
    public void transferTo(File dest) throws IOException, IllegalStateException {
        FileCopyUtils.copy(this.content, dest);
    }

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zyx254663zyx/article/details/121557102

智能推荐

编码规范(前端)_csdn 编码规范-程序员宅基地

文章浏览阅读955次,点赞20次,收藏22次。软件行业的高速发展,对软件开发者的综合素质要求越来越高,不仅仅是编程知识点,其他维度知识点也会影响最后的交付质量,本文档以开发前端项目角度,详细描写了前端的代码规范,分别从HTML、CSS、JavaScript、TypeScript、四个方面入手,并且每个章节进行了详细划分,方便读者能快速定位,规范自己的代码,提高项目质量。但对于新业务,如无特殊要求,统一使用UTF-8字符编码,以便统一。单行注释,需在注释内容和注释符之间需留有一个空格,以增强可读性。多行注释,注释符单独占一行,注释内容2个空格缩进。_csdn 编码规范

深入解析yolov5,为什么算法都是基于yolov5做改进的?(一)

YOLOv5是一种单阶段目标检测算法,它在YOLOv4的基础上引入了多项改进,显著提升了检测的速度和精度。YOLOv5的设计哲学是简洁高效,它有四个版本:YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,分别对应不同的模型大小和性能。YOLOv5的四个版本(s,m,l,x)——YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,它们之间的主要区别在于模型的深度和宽度,即模型的复杂度和性能。下面是各个版本的具体区别:可以看到每个模型对应的大小速度检测性能都有差距。

Django后台项目开发实战一

开发环境使用 Anaconda, IDE 使用 pycharm。

【docker 】Windows10安装 Docker

Hyper-V 是微软开发的虚拟机,仅适用于 Windows 10。选中Hyper-V 点击确定。

cocos-lua资源管理

本文介绍cocos-lua项目的资源管理和工作流,适用人群包括初学者和有经验开发者,故读者可根据自己的需要有选择性的查阅自己需要的内容。

自动化测试——selenium

综上所述,Selenium是一个功能强大的自动化测试工具,适用于需要进行Web应用自动化测试的场景。通过学习和实践,可以有效地利用Selenium来提高测试效率和质量。Selenium是一个。

随便推点

java钉钉微信qq扫码登录

钉钉微信qq扫码登录实现

importError: no module named _winreg_no module named 'winreg-程序员宅基地

文章浏览阅读1w次。因为在python3中,这个module改名为winreg了_no module named 'winreg

CSS入门学习笔记+案例_css 学习-程序员宅基地

文章浏览阅读10w+次,点赞1.5k次,收藏9.7k次。CSS入门学习一、CSS简介1、什么是CSSCSS:Cascading Style Sheet 层叠样式表是一组样式设置的规则,用于控制页面的外观样式2、为什么使用CSS实现内容与样式的分离,便于团队开发样式复用,便于网站的后期维护页面的精确控制,让页面更精美3、CSS作用页面外观美化布局和定位二、基本用法1、CSS语法<head> <style> 选择器{ 属性名:属性值; 属性名:属性值; } </style>&l_css 学习

GE HYDRAN 201TI 溶解气体分析(DGA)监测器工控DCS系统-程序员宅基地

文章浏览阅读451次,点赞6次,收藏6次。关于其在工控DCS系统中的应用,GE HYDRAN 201TI 溶解气体分析(DGA)监测器可以作为系统中的一个关键组件,为DCS系统提供实时、准确的变压器状态信息。需要注意的是,虽然GE HYDRAN 201TI具有许多优点,但在实际应用中,还需要根据具体的工控DCS系统需求和配置进行选择和配置。因此,在选择和使用这款监测器时,建议与专业的工程师或技术顾问进行咨询和合作,以确保其能够充分发挥作用,提高工业生产的效率和安全性。

Java读取txt文件的内容_先获取文件句柄在读取内容-程序员宅基地

文章浏览阅读796次,点赞3次,收藏4次。功能:Java读取txt文件的内容分析:1:先获得文件句柄2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取3:读取到输入流后,需要读取生成字节流4:一行一行的输出。readline()。备注:需要考虑的是异常情况import java.io.BufferedReader;import java.io.File;import java.io.F..._先获取文件句柄在读取内容

python 线性回归异常值_Python机器学习:异常值查找和处理-程序员宅基地

文章浏览阅读2.3k次。再一次的通过写文章的方式强化记忆,本文内容均来源于以上文章。先说如何处理检测到的异常值?有些算法对异常值很敏感,如逻辑回归算法。如果不处理,用该算法拟合出来的模型的效果、精确度会很低。有些算法对异常值不敏感,可以不处理异常值。由于目前学习到的3种算法(线性回归、逻辑回归、随机森林),所以还是处理异常值处理异常值可以像处理缺失值的方法一样:删除或用特殊值代替如何查找到异常值?查看数据的描述统计信息d..._python中异常值处理方法有回归法和极大似然