关于java后台处理base64数据
来源:互联网 发布:珠宝软件 编辑:程序博客网 时间:2024/06/13 01:38
/**
* @date : 2017-11-06 15:19
* @description : 头像上传
* @param : Member(成员对象)
* */
@RequestMapping("/uploadHeader")
public @ResponseBody Map<String, String> uploadHeader(@RequestParam String base64Data){
Map<String, String> map = new HashMap<String, String>();
String basePath = request.getRealPath("/"); //获取项目根目录绝对路径(xxx/Rainbow/)
try{
String dataPrix = "";
String data = "";
if(base64Data == null || "".equals(base64Data)){
throw new Exception("上传失败,上传图片数据为空");
}else{
String [] d = base64Data.split("base64,");
if(d != null && d.length == 2){
dataPrix = d[0];
data = d[1];
}else{
throw new Exception("上传失败,数据不合法");
}
}
String suffix = "";
if("data:image/jpeg;".equalsIgnoreCase(dataPrix)){//data:image/jpeg;base64,base64编码的jpeg图片数据
suffix = ".jpg";
} else if("data:image/x-icon;".equalsIgnoreCase(dataPrix)){//data:image/x-icon;base64,base64编码的icon图片数据
suffix = ".ico";
} else if("data:image/gif;".equalsIgnoreCase(dataPrix)){//data:image/gif;base64,base64编码的gif图片数据
suffix = ".gif";
} else if("data:image/png;".equalsIgnoreCase(dataPrix)){//data:image/png;base64,base64编码的png图片数据
suffix = ".png";
}else{
throw new Exception("上传图片格式不合法");
}
//重命名文件名称
String tempFileName = basePath + "upload\\header\\"+String.valueOf(Calendar.getInstance().getTimeInMillis()) + suffix;
//因为BASE64Decoder的jar问题,此处使用spring框架提供的工具包
Base64Decoder decoder = new Base64Decoder();
byte[] bs = decoder.decode(data.getBytes(),0, data.length());//将base64转换成字节流
try{
//使用apache提供的工具类操作流
FileUtils.writeByteArrayToFile(new File(tempFileName), bs);
}catch(Exception ee){
throw new Exception("上传失败,写入文件失败,"+ee.getMessage());
}
map.put("header_name",tempFileName);//设置重命名文件名 显示在表单中,再提交至后台
}catch (Exception e) {
map.put("result","false");//设置上传图片结果(成功或者失败)
return map;
}
map.put("result", "true");
return map;
* @date : 2017-11-06 15:19
* @description : 头像上传
* @param : Member(成员对象)
* */
@RequestMapping("/uploadHeader")
public @ResponseBody Map<String, String> uploadHeader(@RequestParam String base64Data){
Map<String, String> map = new HashMap<String, String>();
String basePath = request.getRealPath("/"); //获取项目根目录绝对路径(xxx/Rainbow/)
try{
String dataPrix = "";
String data = "";
if(base64Data == null || "".equals(base64Data)){
throw new Exception("上传失败,上传图片数据为空");
}else{
String [] d = base64Data.split("base64,");
if(d != null && d.length == 2){
dataPrix = d[0];
data = d[1];
}else{
throw new Exception("上传失败,数据不合法");
}
}
String suffix = "";
if("data:image/jpeg;".equalsIgnoreCase(dataPrix)){//data:image/jpeg;base64,base64编码的jpeg图片数据
suffix = ".jpg";
} else if("data:image/x-icon;".equalsIgnoreCase(dataPrix)){//data:image/x-icon;base64,base64编码的icon图片数据
suffix = ".ico";
} else if("data:image/gif;".equalsIgnoreCase(dataPrix)){//data:image/gif;base64,base64编码的gif图片数据
suffix = ".gif";
} else if("data:image/png;".equalsIgnoreCase(dataPrix)){//data:image/png;base64,base64编码的png图片数据
suffix = ".png";
}else{
throw new Exception("上传图片格式不合法");
}
//重命名文件名称
String tempFileName = basePath + "upload\\header\\"+String.valueOf(Calendar.getInstance().getTimeInMillis()) + suffix;
//因为BASE64Decoder的jar问题,此处使用spring框架提供的工具包
Base64Decoder decoder = new Base64Decoder();
byte[] bs = decoder.decode(data.getBytes(),0, data.length());//将base64转换成字节流
try{
//使用apache提供的工具类操作流
FileUtils.writeByteArrayToFile(new File(tempFileName), bs);
}catch(Exception ee){
throw new Exception("上传失败,写入文件失败,"+ee.getMessage());
}
map.put("header_name",tempFileName);//设置重命名文件名 显示在表单中,再提交至后台
}catch (Exception e) {
map.put("result","false");//设置上传图片结果(成功或者失败)
return map;
}
map.put("result", "true");
return map;
}
在这里没有使用Base64Util这个类 是因为我的当前jdk版本为1.7 想要使用这个需要把你的jdk升级为1.8的版本 所以这里使用了mysql jdbc包自带的base64处理类 Base64Decoder 将前台穿送过来的base64(通过canvas)字符串转成二节流文件 进行上传图片 具体代码如上
阅读全文
0 0
- 关于java后台处理base64数据
- java后台保存base64图片数据
- java后台数据批量处理
- base64后台传输细节处理
- base64数据如何传到后台
- Android Base64处理数据
- jQuery使用Base64 生成图片预览和java后台不同的接收处理方式
- 后台处理JSON数据
- 关于实现接收base64图片数据并以图片保存到本地的处理
- 关于Java后台处理android上传图片的问题
- 【实例】ajax提交到java后台之后处理数据
- java web后台数据传入前台javascript处理
- Java后台返回和处理JSon数据的方法
- Android JAVA 数据编码Base64
- java8中 关于Base64使用的处理
- 关于Java后台的Json数据的传递问题
- Javascript 通过 base64处理二进制数据
- Java后台处理压缩文件
- 机器学习实战【9】(岭回归和Lasso)
- 微信调用jssdk在网页端实现调用扫一扫,java+jsp
- 求素数的C语言代码优化
- LeetCode-2. Add Two Numbers
- 花生壳内网穿透-ssh远程
- 关于java后台处理base64数据
- 变量的声明和定义
- Android+Json+SSM+MySQL后台数据交互模拟云备份云恢复(源码)
- PullToRefreshListView,上拉加载更多时,数据加20条。。。。。。下拉加载更多时,数据加0条,
- HttpUrlConnection的setDoOutput与setDoInput的区别
- MapReduce shuffle过程剖析及调优
- 论文笔记:Single-Image Crowd Counting via Multi-Column Convolutional Neural Network
- js 微信分享 config ok,但是标题描述没有修改问题总结
- Android-Universal-Image-Loader三大组件DisplayImageOptions、ImageLoader、ImageLoaderConfiguration详解