前言
在使用SpringCloud的feign組件過程中, 我們想傳遞一個文件到服務(wù)提供者. 但是我們只有byte[], 這是就需要手動創(chuàng)建MultipartFile
實現(xiàn)接口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表示這個文件在表單中的名字