首页 > 其他分享 >feign中传递自定义MultipartFile

feign中传递自定义MultipartFile

时间:2023-08-13 14:44:10浏览次数:36  
标签:feign return String 自定义 imgContent Override MultipartFile public name

前言

在使用SpringCloud的feign组件过程中, 我们想传递一个文件到服务提供者. 但是我们只有byte[], 这是就需要手动创建MultipartFile

实现接口MultipartFile

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import org.springframework.web.multipart.MultipartFile;

public class GYMultipartFile implements MultipartFile{
    
    private String contentType;
    
    private String originalFilename;
    
    private String name;
    
    private byte[] imgContent;

    public GYMultipartFile(String name, String originalFilename, String contentType, byte[] imgContent){
        this.imgContent = imgContent;
        this.name = name;
        this.originalFilename = originalFilename;
        this.contentType = contentType;
    }

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

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

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

    @Override
    public boolean isEmpty() {
        return imgContent == null || imgContent.length == 0;
    }

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

    @Override
    public byte[] getBytes() throws IOException {
        return imgContent;
    }

    @Override
    public InputStream getInputStream() throws IOException {
        return new ByteArrayInputStream(imgContent);
    }

    @Override
    @SuppressWarnings("resource")
    public void transferTo(File dest) throws IOException, IllegalStateException { 
        new FileOutputStream(dest).write(imgContent);
    }
}

注意事项

  1. 上面的name必须填写正确, name表示这个文件在表单中的名字

标签:feign,return,String,自定义,imgContent,Override,MultipartFile,public,name
From: https://www.cnblogs.com/anquing/p/17626553.html

相关文章

  • 自定义组件使用v-model
    场景描述我们在一个系统中,会出现这样的情况,有一个联系人的下拉框,这个下拉框中的数据是从服务端获取的。在很多页面都需要使用这个联系人(下拉框)。我们通常是这样做的:写一个下拉框组件然后调用接口。这样不仅会造成代码冗余,而且不利于后期的维护。比如说:如果有一天这个要发......
  • 在 Spring Framework 中实现自定义 AOP 切面
    在SpringFramework中,面向切面编程(AOP)是一种重要的编程范式,它允许我们在应用程序中以模块化的方式处理横切关注点(如日志记录、事务管理等)。本文将深入探讨如何使用SpringFramework实现自定义AOP切面,通过代码示例演示其实际应用。1.概述AOP的核心思想是将横切关注点与主要......
  • mac下配置git自定义快捷命令
    mac下配置git自定义快捷命令 对于经常使用终端命令来对git仓库进行操作来说,如果能用别名来代替,那可太省事了。mac就支持这样的配置 1.指定自定义别名 vi ~/.bash_profile 配置环境变量,插入类似下面的内容(等号右边的别名根据自己习惯自定义即可):1aliasgcd='git......
  • WPF自定义控件实战:自制上传文件显示进度按钮
    自定义控件在WPF开发中是很常见的,有时候某些控件需要契合业务或者美化统一样式,这时候就需要对控件做出一些改造。 目录按钮设置圆角按钮上传文件相关定义测试代码 话不多说直接看效果默认效果:上传效果:按钮设置圆角因为按钮本身没有CornerRadius属性,所......
  • 基于scheduler framework开发自定义调度器
    k8sv1.19.0基于schedulerframework开发插件,本质上是实现接口。下载代码mkdirsigs.k8s.iocdsigs.k8s.iogitclonehttps://github.com/kubernetes-sigs/scheduler-plugins.gitcdscheduler-pluginsgitcheckoutrelease-1.19新增代码pkg目录下新增label_a_b目录packag......
  • Odoo12_自定义导出excel
    1.首先按钮或者菜单出发一个后端方法返回url动作defdownload_xxx_excel(self):url='/export_xxx_excel?id={self.id}return{'type':'ir.actions.act_url','url':url,'tar......
  • Qt自定义控件之动画文本
    @TOC前言在Qt中,自定义控件可以让我们实现丰富的用户界面效果和交互体验。其中,动画文本是一种常见的效果,通过文本的动态变化可以吸引用户的注意力,增强用户体验。本文将介绍如何使用Qt实现一个动画文本的自定义控件,让你的应用程序更加生动活泼。一、动画文本的效果功能实现:基础功......
  • 在传奇游戏界面添加或删除自定义功能按钮
    本教程是以HERO引擎和非凡登录器(原猎鹰登录器)为例进行示范,其他引擎请自行进行测试,。自定义功能按钮就是在游戏界面中处于小地图,组队等按钮上面的一排可自定义进行功能设置的按钮,如图中所示,用方框选中的就是想要达到的效果。以下是具体添加方法:首先要下载下面我们给大家准备好的一......
  • SpringBoot复习:(21)自定义ImportBeanDefinitionRegistrar
    要达到的目的:将某个包下使用了某个自定义注解(比如@MyClassMapper)的类注册到Spring容器。一、自定义注解:packagecom.example.demo.service;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;@Retention(RetentionPolicy.RUNTIME)publ......
  • 自定义键盘
    1.下载刷写工具在https://www.wch.cn/downloads/WCHISPTool_Setup_exe.html 下载WCHISPStudio工具此工具为CH552G芯片厂商沁恒官方烧录工具(仅有windows版本)2.刷写最新键盘固件最新固件:threekey_v5.1.hex 点击下载3、设置下载固件打开WCHISPStudio按下图设置将USB线......