项目需求把聊天记录中的文字和存放在cdn中的图片导出成word内容,使用到了mht(今日主要的坑在于cdn外链图片如何放入到word中)
百度中的mht的定义
由于每个聊天记录的图片都是放入到了oss中所以为了要放入word里面避免无外网情况下查看到图片所以每次在导出时先去判断是否已经下载过该图如果下载了那就只取,并把图片使用base64加密到mht中,具体的实现看以下部分
用到的一些知识补充
1.Content-Location
首部字段表示的是报文主体返回资源对应的URI(统一资源标识符Uniform Resource Identifier)
当返回的页面内容与实际请求的对象不同时,首部字段Content-Location内会写明URI
代码中file:///C:/9FD15EF4/file8676.htm
2.Content-Transfer-Encoding
规定了传输报文主体时采用的编码方式
代码中Content-Transfer-Encoding: quoted-printable
3.Content-Type
multipart/related=内嵌资源
boundary=使用字符串来划分多部分对象集合指明的各类实体。在boundary字符串指定的各个实体的起始行之前插入“–”标记(例如:——=_NextPart_01CFAA79.4B969C00),而在多部分对象集合对应的字符串的最后插入“–”(例如:——=_NextPart_01CFAA79.4B969C00–)作为结束
4.MIME(Multipurpose Internet Mail Extensions多用途因特网邮件扩展)机制
mime允许处理文本,图片,视频等不同类型的数据。而在mime扩展中会使用一种称为多部分对象集合的方法,来容纳多分不同类型的数据。
实际代码
1.pom.xml 为了导出模板使用freemarker
2.mhtword.ftl 模板中的内容
|
|
3.具体实现类