-
插件下载
-
前端代码
前端代码较长,已放至码云
示例demo使用的是限制长宽比的图片选择方式,其它方式可以访问官网下载官方压缩包,里面有几个示例demo。
-
后端代码
使用的解码方式是java8下decoder对象,java8以下请选择其它解码方式
@RequestMapping(value = "saveImg", method = RequestMethod.POST)
public string saveImg(@RequestParam("imageSrc") String imageSrc) {
BufferedOutputStream bos = null;
try {
// base64解码对象,使用util包下的
final Base64.Decoder decoder = Base64.getDecoder();
// 保存图片到本地目录
String newFildId = UUID.randomUUID().toString() + ".png";
File file = new File("D:/imgServer/" + newFildId);
file.createNewFile();
bos = new BufferedOutputStream(new FileOutputStream(file));
// 去掉头部信息并保存到图片文件中
bos.write(decoder.decode(imageSrc.replace("data:image/png;base64,", "")));
} catch (IOException e) {
e.printStackTrace();
log.error(e.getMessage());
return "false";
} finally {
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
return "false";
}
}
return "success";
}
-
页面加载
保存之后,页面使用img标签读取(【file:///图片路径】的形式可能无效,使用图片服务器的形式读取),步骤如下:
- 在tomcat的server.xml中加入以下语句(路径自行修改),创建图片服务器
<Context docBase="D:/imgServer" path="/imgServer" reloadable="true" />
(如果使用eclipse,需要在eclipse的server中修改,否则重启eclipse会覆盖掉)
2.页面访问图片服务器
<img src="/imgServer/0.png">
-
一些废话( ̄▽ ̄)~*
图片的base64编码可以不解码(也不要将头部信息去掉)直接保存到数据库中,页面展示时将base64编码直接赋值给img的src属性应该也可以(未尝试)。