在pom.xml中添加依赖:
html
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
在controller中实现上传和下载
上传图片:
图片的base64格式为字符串,以"data:image/png;base64,"开头,解码前需要去掉开头。
java
import org.apache.commons.codec.binary.Base64;
@PostMapping(value = "/uploadImage",produces = MediaType.IMAGE_JPEG_VALUE)
@ResponseBody
public String uploadImage(@RequestBody Map<String,Object> map) throws IOException {
try {
Map<String,Object> m = (Map<String,Object>)map.get("img");
String imgStr = m.get("base64").toString();
imgStr = imgStr.substring(imgStr.indexOf(",", 1) + 1);
byte[] bytes = Base64.decodeBase64(imgStr);
String name = System.currentTimeMillis()+".png";
File file = new File("pictures/"+name);
file.createNewFile();
FileOutputStream fos = new FileOutputStream(file);
fos.write(bytes);
fos.close();
} catch (Exception e) {
e.printStackTrace();
return "False";
}
return "True";
}
下载图片:将图片转成字节数组。
java
@RequestMapping(value = "/getImage",produces = MediaType.IMAGE_JPEG_VALUE)
@ResponseBody
public byte[] getImage(String path) throws IOException {
File file = new File("pictures/"+path);
FileInputStream inputStream = new FileInputStream(file);
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes, 0, inputStream.available());
inputStream.close();
return bytes;
}