Java OpenOffice+swfTools+FlexPaper实现上传文件的预览

前两天根据领导要求,要实现对上传文件在web的预览,上传文件格式包括word,excel,ppt,pdf等。自己因为没有做过,所以上网查资料,基本都是将上传文件经过转化后再呈现。基本上的几种方案:openOffice+swfTools+FlexPaper将上传文件转pdf转swf,借助FlexPaper前端组件来实现;或将上传文件转pdf再借助pdf2htmlEX转为html来显示,也可以借用一些第三方插件,如pageOffice,SOAOffice,webOffice,officeweb365,office365等。一般都是需要收费的,officeweb365有破解版,不过好像破解版有限制,上传文件不超过2M,每次上传不超过500次,office365是要架设特定的服务器才可以。当然,也可以直接借助一些公司比较成熟的接口,比如我在测试时借用永中的接口,在main方法中提供一个上传文件的url,调用永中的接口后,就可以返回来一个在web端了浏览上传文件的html的静态地址。

public static void main(String[] args) {
        //文件上传转换,获取返回数据
        //调用了永中的接口,实现了对上传文件的在线预览,此方法仅适合的文档类型:word,excel,ppt(chm.dll,pdf格式的文件无法转化)
        String convertByFile = SubmitPost("http://dcs.yozosoft.com:80/upload", 
                "C://Users//Administrator//Desktop//ES//xxxx.docx", "1");
        JSONObject obj = JSONObject.fromObject(convertByFile);
        //JSONObject obj = JSONObject.parseObject(convertByFile);
        if ("0".equals(obj.getString("result"))) {// 转换成功
            String urlData = obj.getString("data");
            urlData = urlData.replace("[\"", "");//去掉[
            urlData = urlData.replace("\"]", "");//去掉]
            //最后urlData是文件的浏览地址
            //此处输出的路径,即在浏览器中预览上传文件的url。
            System.out.println(urlData);//打印网络文件预览地址
        } else {// 转换失败
            System.out.println("转换失败");
        }
}

最终输出来的http://dcs.yozosoft.com:8000/2018/07/19/MTgwNzE5NTcwMTAyMDQy.html,就是web端浏览的地址。

当然,也可以用第一种,将上传文件转化为pdf,swfTools转化为swf,借助FlexPaper前端插件来展示,我的项目中先用了这个方法来呈现(缺点是:上传word文档,无法提取出来目录)最终的效果如下:

Java OpenOffice+swfTools+FlexPaper实现上传文件的预览_第1张图片

需要注意的是:使用了FlexPaper插件,除了将该插件所需要的js在jsp中引入外,FlexPaperViewer.swf要放对位置。我的jsp就是在根目录下,因此我也将其放在根目录下执行成功

Java OpenOffice+swfTools+FlexPaper实现上传文件的预览_第2张图片

 

你可能感兴趣的:(上传文件的预览)