经过半个月的代码编写,再经过半个月的测试,文件加密解密及预览功能基本上全部实现了,当然,一些小的细节还有待修改。
    遇到最大的麻烦还是:操作平台的切换导致的一系列问题,本地测试完全不bug,部署到linux上,不是乱码,就是一堆报错,整的晕头转向,关键还是不好调试,有时候改了一点点代码,想看下效果,又得重新打包部署...
    下面就遇到的一些问题及解决方案大致的说一下吧:
  1. txt文件无法通过openoffice转成pdf
    解决方法:将txt文件改为odt文件,可以实现阅览,但是问题又来了,再openoffice下odt文件无法删除,网上也找不到方法,最终只能保留,将odt文件命名为原txt文件的id.odt,每次阅览的时候,先查找有没有这个txt文件相同的id.odt文件存在,存在直接将该id.odt文件进行转pdf。
  2. txt文件在本地预览无乱码,放linux上中文乱码
    解决方法:出现该问题的原因在于文件的编码问题,操作系统本地编码是gbk,linux上设置为UTF-8,导致编码不同,解析txt文件出现乱码。故先判断txt文件的编码,如果不是utf-8,则转码为utf-8,再进行其他操作。
  3. 文件的加密解密乱码
    解决方法:加密解密算法用的是DES加密解密,在本地测试,加密解密无问题,放到linux上,拿取的解密文件为乱码…这个问题一度让人崩溃,以为des算法linux上就是有问题。最终参照了一篇博文,根据博文修改代码才得以解决。原因在于,生成密匙key的代码在windows下面好使,但是在linux下面会导致每次生成的key不一样、也就是说加密之后再解密就会保存,网上说由于两个操作系统处理补充字节默认补齐的方式不同,所以出现这样的情况
  4. 文件预览转pdf直接报错
    com.artofsolving.jodconverter.openoffice.connection.OpenOfficeException: conversion failed: could not save output document; OOo errorCode: 2074
    一开始是通过 txt/doc/ppt/excel –>pdf –>swf 这种方式实现文件的预览,在本地环境测试也是毫无问题,放到linux上,就报错2074.网上也无解决方案。。。通过更新jar包,更新openoffice版本,更新… 全无效果。最终只能彻底放弃这种思路,使用另外一种方案,txt/doc/ppt/excel –>pdf ,使用pdf.js,即只需要转为pdf文件,即可实现预览,更加的简洁~~~注意下载的pdf.js,放在代码中使用,需要修改部分js源码,保证出来的样式是正确的,而不是一堆乱七八糟的框框.通过调试很容易解决。
  5. openoffice下部分文件转pdf乱码…
    解决方案:放弃openoffice,转而使用libreoffice。