我是靠谱客的博主 美好心锁,最近开发中收集的这篇文章主要介绍二进制流与base64位相互转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

二进制流与base64位相互转换

base64传到前端需要有文件头来区分
先自己定义一个

/**
	 * 图片base64格式Map
	 */
	private static final Map<String, String> DATA_IMAGE_MAP = new HashMap<String, String>() {
		{
			put("png", "data:image/png;base64,");
			put("jpg", "data:image/jpeg;base64,");
		}
	};

base64转二进制流

/**
	 * base64转二进制流并封装附件实体
	 * @param content
	 * @return
	 */
	public static FbAttachment stringChange(String content){
		FbAttachment fbAttachment=new FbAttachment();
		//判断base64是否有文件头,有就截取,避免冲突
		if(content.indexOf(DATA_IMAGE_MAP.get("png"),0)==0){
			fbAttachment.setSuffix("png");
			content = content.substring(content.indexOf(",")+1);
		}else if(content.indexOf(DATA_IMAGE_MAP.get("jpg"),0)==0){
			fbAttachment.setSuffix("jpg");
			content = content.substring(content.indexOf(",")+1);
		}
		//base64转二进制流并封装进实体
		fbAttachment.setAttachmentContent(Base64.decodeBase64(content));
		//附件原始名
		fbAttachment.setOriginName(FbAttachmentOriginName.ATTACHMENT_ORIGIN_NAME);
		//附件业务类型
		fbAttachment.setBizType(BusinessType.QUESTION_LIST);
		return fbAttachment;
	}

二进制流转base64

@Override
	public String getAttachmentContent(String id) {
		FbAttachment fbAttachment=fbAttachmentMapper.selectById(id);
		String content=null;
		// 验证后缀是否为空
		if (StringUtils.isNotBlank(fbAttachment.getSuffix())) {
			// 获取图片后缀
			String suffix = fbAttachment.getSuffix().toLowerCase();
			// 图片后缀判断
			if (PICTURE_FORMAT.contains(suffix)) {
				// 获取base64字符串,并替换base64后的字符串中的回车换行
						//二进制流转base64
		content=Base64.encodeBase64String(fbAttachment.getAttachmentContent());
						"");
				// 添加图片前缀
				if (DATA_IMAGE_MAP.containsKey(suffix)) {
					content=DATA_IMAGE_MAP.get(suffix) + content;
				}
			}
			//非图片返回string类型
			if (TEXT_FORMAT.contains(suffix)) {
				content=(new String(fbAttachment.getAttachmentContent()));
			}
		}
		return content;
	}

最后

以上就是美好心锁为你收集整理的二进制流与base64位相互转换的全部内容,希望文章能够帮你解决二进制流与base64位相互转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部