总结一下目前手头的项目~发现不少知识点的盲区,如下。做个小笔记方便以后复用。
blob,base64互转
最开始编码解码用的是原生base64,encode因为直接从数据库拿到的blob传进入,不允许强转,遂用流重写之;
而decode存入数据库图片打开有问题,就也换了。查了好久没查到导致的原因,总之它可以工作了。
return Base64.decodeBase64(base64Str);
return Base64.encodeBase64String(bytes);
/** * blob转base64 * @param blob * @return */ public static String convertBlobToBase64String(Blob blob) { String result = ""; if(null != blob) { try { InputStream msgContent = blob.getBinaryStream(); ByteArrayOutputStream output = new ByteArrayOutputStream(); byte[] buffer = new byte[100]; int n = 0; while (-1 != (n = msgContent.read(buffer))) { output.write(buffer, 0, n); } result =new BASE64Encoder().encode(output.toByteArray()) ; output.close(); } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return result; }else { return null; } } /** * base64转blob * @param str * @return */ public static byte[] transformBase64(String str) { BASE64Decoder decode = new BASE64Decoder(); byte[] b = null; try { b = decode.decodeBuffer(str); } catch (IOException e) { e.printStackTrace(); } return b; }私有方法的测试
@Test public void test_方法名(){ try{ //创建类 ServiceClass service = new ServiceClass(); //指定方法 Method method = ServiceClass.class.getDeclaredMethod("方法名", 参数类型.class); //允许反射调用私有方法 method.setAccessible(true); //执行 System.out.println(method.invoke(service, 参数···)); }catch(Exception ex){ ex.printStackTrace(); } }
GSon的坑
用GSon处理json数据发现这个工具有些比较坑的地方。
比如转换“201609121830”这样的时间字段,会变成科学计数法,很崩溃。只有用new BigDecimal((Double) paramMap.get("DATE")).toString()这样的方法,让它正常显示。
再比如,转换时遇上空字段直接抛错,可以重写原生的一些方法来避免,但不知道为什么调试的时候总是进不去这个方法,网上的教材也是大同小异的,调用方法也很简单,看不出什么错误。遂崩溃,换了Jackson~
/** * JSON转HashMap * @param jsonStr * @return * @throws Exception */ public static Map<String, Map<String, Object>> JSON2HashMap(String jsonStr) throws Exception{ ObjectMapper objectMapper = new ObjectMapper(); Map<String, Map<String, Object>> maps = objectMapper.readValue(jsonStr, Map.class转换的格式); return maps; }
map转json也很简单
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(map);
相关推荐
里面代码例子都验证过的,可以直接使用,如果需要全部代码,请直接打开https://item.taobao.com/item.htm?id=570336396094 网址咨询
Oracle slq bolb转换Base64 CLOB
pb9 BOLB转base64位
图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片),完整的demo例子,可运行。
最近开发遇到blob类型转换为String,一时犯难。所以总结了一段代码与之分享。亲测
PB关于字符进制数转化及base64加密、解密 1、字符型十六进制数转为十进制数值 2、十进制数转为十六进制字符 3、base64加密 4、base64解密 5、将blob转为byte数组
pb10调用base64.dll,实现将图片转换成base64编码,将base64编码转换成图片 函数声明 function long GetFileEncode64(ref string filename, ref string encode64)library "base64" alias for "GetFileEncode64;...
public function blob base64decode (string strbuf, ref character lc_return[]) //2013.11.26 //修改了原网上的最后2位字符的bug //修改了原网上解码没有按照标准76字符增加换行符的bug /* 标注base64编码方式 ...
图片与Base64加密码字符串相互转换工具 带源码
function long Base64Decode(ref blob ouput, ref string input ,long inputlen)library "base64" alias for "Base64Decode;Ansi" 调用实例 string ls_filename,ls_ret long num blob lb_file blob{10000000}...
function showFile(sBaseFile){ if (!sBaseFile) { ///文件不存在! } const blob = base64ToBlob(sBaseFile); if (window.navigator && window.navigator....base64ToBlob 方法在txt中,这里放不下了
image-tools图像转换工具,可用于如下环境:uni-app、微信小程序、5+APP、浏览器(需允许跨域),图像和base64的转换
在用canvas将png图片转jpeg时,发现透明区域被填充成黑色。 代码如下: XML/HTML Code复制内容到剪贴板 <p>Canvas: style> <p>Base64转码后的图片: <div u00a0id=base64Img> [removed] ...
mysql数据库 中用blob存储image及file 数据blob的写入与提取 方法概要
Blob、InputStream、byte 互转
jpg转base64格式,文件不大于6.4M。如果需要代码 cjzy22@sohu.com
1.真实代码,节省你大量时间 2.pb11.2版本 一份劳动一份收获
PB12.5,PB12.6下调试通过 把SRU导入即可。 integer li_FileNum, loops, ...//ls_return =base64head+ luo_base64.base64encode(tot_b) // n_base64 luo_base64 ls_return = luo_base64.encode(tot_b) return ls_return
vue前端解析word,pdf,exl,图片,视频等文件预览,支持base64格式文件转Blob流 预览。实现前端选择文件 直接在页面展示,或者请求后端获取base64 string 字符串 转码 在前端页面展示
20180828开发,提供了三种通过JDBC实现图片存储到BLOB的方式: ...2、com.ub:实现简单的插入及读取操作,读取后的... 然后将Base64字符串传参到Controller后进行解码处理后再存储到BLOB字段。 依赖Jar包: ojdbc6.jar