其实这个功能的总思路是 包所有的QQ聊天记录和旺旺的聊天记录先拷贝到word,让word把图片进行base64的加密,切记word保存时候的格式是mht的

比如我保存了一份聊天记录,用notepad++打开

可以看到在<!--StartFragment-->
          <!--EndFragment-->标签内容才是你拷贝的内容图片后面的src是content-Location后面的字符

后面我们就是解析了

public String newAddServeRecord() {InputStreamReader r = null;BufferedReader br = null;try {String uploadPath = Tools.getStrutsProp().getValue("uploadPath")+ "recordImgs/";File recf = new File(uploadPath);recf.mkdirs();String urlPath = Tools.getStrutsProp().getValue("urlPath")+ "recordImgs/";r = new InputStreamReader(new FileInputStream(mhtFile), "UTF-8");br = new BufferedReader(r);String result = "";Map<String, String> imgMap = new HashMap<String, String>();String startFragment = "<!--StartFragment-->";String endFragment = "<!--EndFragment-->";String base64 = "Content-Transfer-Encoding: base64";String location = "Content-Location: ";String str = null;while ((str = br.readLine()) != null) {if (str.indexOf(startFragment) != -1) {if (str.indexOf(endFragment) != -1) {result += str.substring(str.indexOf(startFragment)+ startFragment.length(),str.indexOf(endFragment));} else {result += str.substring(str.indexOf(startFragment)+ startFragment.length(), str.length());}}if (str.indexOf(endFragment) != -1) {result += str.substring(0, str.indexOf(endFragment));}if (str.indexOf(base64) != -1) {String locationPath = br.readLine();locationPath = locationPath.replace(location, "");br.readLine();String base64Img = br.readLine();imgMap.put(locationPath, base64Img);}}result = result.replaceAll("=20", " ").replaceAll("=3D", "=").replaceAll("<IMG", "<img");for (String key : imgMap.keySet()) {byte[] imgByte = Base64.decode(imgMap.get(key));String fileName = Tools.getDateToSEC() + Tools.getThree()+ key.substring(key.lastIndexOf("."));FileOutputStream imgOut = new FileOutputStream(uploadPath+ fileName);imgOut.write(imgByte);imgOut.close();result = result.replace(key, urlPath + fileName);}// 写入数据库ServeRecord sr = new ServeRecord();sr.setDate(new Date());sr.setContent(result);sr.setServeCustomer(((Admin) getSession().get(Constant.ADMIN)).getName());sr.setCustomerId(customer.getId() + "");serveRecordDao.insert(sr);state = "okrecord";} catch (Exception e) {logger.error("CustomerManagerAction.newAddServeRecord", e);return ERROR;} finally {try {if (null != br) {br.close();}if (null != r) {r.close();}} catch (IOException e) {logger.error("CustomerManagerAction.newAddServeRecord[close] error!",e);return ERROR;}}return SUCCESS;}

旺旺 QQ的聊天记录(含图片)保存到自己的服务器相关推荐

  1. 秀米编辑器(xiumi)+百度编辑器(Ueditor) 集成 :解决集成问题,秀米编辑器导出到百度编辑器格式问题,图片保存到自己的服务器(阿里云OSS)

    1.集成前提条件: 1. 需要集成百度编辑器到环境中 2.https环境下才可以导出数据到百度编辑器,如果不是https环境,会出现错误 然后我们开始讲解如何集成: 2.引入资源: //百度编辑器需要 ...

  2. 安卓仿QQ空间实现(含图片的动态编辑、发表、点赞、评论)

    之前做项目的时候需要用到仿空间动态的功能,在此做一下记录,简单介绍一下listview自定义适配器以及各相关功能实现方法. 一.效果图 这里添加了两条初始动态,其他都是现编现发的.头像这里后面使用了圆 ...

  3. 让QQ群聊天记录自动保存到群空间中(转)

    让QQ群聊天记录自动保存到群空间中(转) 笔者经常在不同的电脑登录QQ,所以经常出现群消息丢失的烦恼.现在可以把聊天记录保存到群空间里,就不麻烦了. 笔者加入了多个作者.编辑交流QQ群,在QQ群里共同 ...

  4. QQ语音聊天记录也能轻松保存(转)

    QQ语音聊天记录也能轻松保存(转) 想保存QQ的语音聊天记录该如何保存呢?我们可以使用第三软件来实现. Total Recorder是一款不可多得的录制声音的好工具,它几乎可以录制所有通过声卡和软件发 ...

  5. 仿qq空间java源码_android 发说说动态源码下载(高仿QQ空间,含图片多选)

    [实例简介]仿qq发动态,图片发布效果 [实例截图] [核心代码] package com.king.photo.activity; import android.annotation.Suppres ...

  6. Nonebot QQ机器人插件九:qq群聊天记录词云图

    QQ机器人插件九:qq群聊天记录词云图 1. 将实时聊天记录保存到数据库 安装数据库可自行到网上查找,本文仅使用mysql数据库为例.linux下mysql数据库安装可参考(59条消息) Linux安 ...

  7. C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示)

    C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示) 作者:一点一滴的Beer http://beer.cnblogs.com/ 在程序设计中,涉及数据存储和数据交换的时候 ...

  8. 推荐一些可以将QQ截取的gif图片修改为循环播放的软件

    QQ截取的gif图片在网页上只能播放一次~~我想把它变成循环播放的.请高手们推荐!PS:我不要photoshop的~~ ======================================== ...

  9. 谷歌地图 图片保存_Google如何在地图上跟踪并保存您的一举一动

    谷歌地图 图片保存 大哥在看 (Big Brother is watching) Google has a tool that lets you set up an automatic deletio ...

最新文章

  1. docker基础命令
  2. Go圈10月份优质博主推荐
  3. jms pub/sub模型_JMS消息传递模型:点对点和发布/订阅
  4. android Notification分析—— 您可能会遇到各种问题
  5. ansible笔记(4):常用模块之文件操作
  6. linux nslookup 解析不到dns_内网智能DNS搭建
  7. Android意图Intent总结代码
  8. 平面设计常用计算机工具,平面设计中常用的计算机软件及其具体使用
  9. ListView优化的
  10. OpenGL 中的 Render To Texture
  11. 罗振宇2021跨年演讲3:谁能跳出数字化系统困境?
  12. WordPiece、BPE详解及代码
  13. Python的Profile概述
  14. una到底啥意思_una到底啥意思_Una_英文名Una是什么意思
  15. python算库存管理_年终库存盘点怎么做?无代码库存管理系统高效率!
  16. 该怎么学好软件工程这门课?
  17. iVMS-4200 Vs区别_45466足球推荐分析 法甲 21:00 安格斯 VS 梅斯
  18. 请问,我要去工商局申请一个工作室,法律上需要那些流程
  19. cocos2dx 中jsc反逆向为js
  20. 30天自制操作系统——第九天内存管理

热门文章

  1. Android流畅启动动画,简单设置你的安卓 绝对流畅到爆
  2. jitsi-meet安卓端进入房间就断开连接
  3. 基于SpringBoot+TestNG框架接口自动化环境搭建
  4. vue+elementui项目中遇到的坑/难题
  5. 模拟退火模型(matlab实现)
  6. [SAP]MM模块术语
  7. i5 10400f和i7 7700哪个性价比高
  8. Hexagon Binutils GNU 手册(19)
  9. Word文档转PDF的功能
  10. bootstrap栅栏系统