上传图片到图片服务器,base64转图片

来源:互联网 发布:如何破解mac迅雷限速 编辑:程序博客网 时间:2024/05/17 06:40

   最近要做一个上传图片的功能,手机端传过来的是将图片转为base64的字符串,我这边(服务器)将这个存到图片服务器上。

   Controller:

/**
* 修改头像
方法里注释的代码是自己本地测试的时候模拟客户端上传
 member,getMemberName()是用户的账号
member.getMemberFace()是用户的头像
*/
@RequestMapping("/updateFace")
public String updateFace(ModelMap map,Nmr_Member member,HttpServletRequest request){
//String imageFile = "d://test.jpg";//待处理的图片
//String picStr= DataUtil.GetImageStr(imageFile);//图片转成流
String data = "";
//member.setMemberFace(picStr);
if (member.getMemberFace() != null) {
String imgPath = DataUtil.GenerateImage(member.URL_PHYSICALPATH,"users/"+member.getMemberName()+"/face", member.getMemberFace());//这里的url_physicalpath是图片保存的物理路径
member.setMemberFace(imgPath);
member.setCds(" member_face =#{memberFace}");
   Integer resutl = iPersonalService.updateMember(member);
if(resutl >0){
member.setMemberFace(Type.URL_PREFIX+"/upload/"+member.getMemberFace());
data = JSONBuilder.build(true, "修改成功!",member);
}else{
data = JSONBuilder.build(false, "修改失败!");
}

}
map.put("data", data);
return IController.SUCCESS_URL;
}

然后调用图片上传公共的util
 /**
    * 上传图片base64字符串转化成图片
    * @param directionry 保存的文件夹名称
    * @param basePath 保存路径
    * @param imgStr 图片码流文件
    * @return
    */
   public static String GenerateImage(String directionry,String basePath,String imgStr) { // 对字节数组字符串进行Base64解码并生成图片
String imgFilePath = "",imgPath="";
String fileName = System.currentTimeMillis()+DataUtil.getRond4()+".jpg";
if (imgStr == null) // 图像数据为空
return null;
try{
if(imgStr.indexOf(",")!=-1){
imgStr=imgStr.substring(imgStr.indexOf(",")+1);
}
byte dataByte[] = Base64.decode(imgStr);

File file = new File(directionry+basePath);
if (!file.exists()) {
file.mkdirs();// 创建父目录地址
}
// 生成jpeg图片
imgFilePath=directionry+basePath+"/"+fileName;
imgPath=directionry+basePath+"/"+fileName;//创建图片地址
OutputStream out=new FileOutputStream(imgFilePath);

out.write(dataByte);
out.flush();
out.close();
}catch (Exception e){


}
return basePath+"/"+fileName;
}


0 0
原创粉丝点击