feign中传递自定义MultipartFile
前言
在使用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); } }
注意事项
- 上面的name必须填写正确, name表示这个文件在表单中的名字
本文来自博客园,作者:咔咔皮卡丘,转载请注明原文链接:https://www.cnblogs.com/anquing/p/17626553.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库