feign传递数组_feign中传递自定义MultipartFile

在SpringCloud的Feign客户端中,如果需要上传文件但只有byte[],可以自定义实现MultipartFile接口进行转换。本文介绍了如何创建一个名为GYMultipartFile的类,该类将byte[]转换为MultipartFile,从而能够正确地传递文件到服务提供者。注意,类中的`name`属性必须设置为文件在表单中的名字。
摘要由CSDN通过智能技术生成

前言

在使用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表示这个文件在表单中的名字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值