1、 最简单的方法是:后台直接定义MultipartFile
MultipartFile image // 图片
其他方式这里简单记录一下:
2、前端传的base64编码的字符串。
后台处理:
//先将string转换成byte[]
imageStr = "base64编码的图片字符串";
imageStr = imageStr.replace("data:image/png;base64,", "");
byte[] image = Base64.decodeBase64();
uploadImage("a.jpg",image);
import com.google.api.client.repackaged.org.apache.commons.codec.binary.Base64;
import org.springframework.web.multipart.MultipartFile;
/**
* 二进制文件转换MultipartFile
* @param bytes
* @return
*/
private MultipartFile getMultipartFile(byte[] bytes) {
MockMultipartFile mockMultipartFile = null;
//java7新特性 不用手动关闭流
try (InputStream inputStream = new ByteArrayInputStream(bytes)) {
mockMultipartFile = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
} catch (IOException e) {
e.printStackTrace();
log.info("二进制文件转换图片异常");
}
return mockMultipartFile;
}
//上传到图片服务器
public void uploadImage(String fileName,byte[] data){
MultipartFile multipartFile = getMultipartFile(data);
try {
minioTemplate.createBucket("truncate");
minioTemplate.putObject("truncate", fileName, multipartFile.getInputStream());
} catch (Exception e) {
throw new RuntimeException("文件上传异常");
}
}