public class Base64File{ public static FileDtl base64UpLoad(String base64Data) throws Exception{ 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("上传失败,数据不合法"); } } FileDtl fileDtl= new FileDtl(); 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 = UuidUtil.get32UUID() + suffix; fileDtl.setFileName(tempFileName); // byte[] bs = Base64Utils.decodeFromString(data); BASE64Decoder decoder = new BASE64Decoder(); byte[] bs = decoder.decodeBuffer(data); //处理数据 for (int i = 0; i < bs.length; ++i) { if (bs[i] < 0) { bs[i] += 256; } } int size=bs.length; fileDtl.setFileSize((long)size) ; InputStream is = new ByteArrayInputStream(bs); fileDtl.setIs(is); return fileDtl; } }
base64转图片
最新推荐文章于 2024-05-31 09:05:13 发布