pageoffice在线编辑时向保存方法传递参数

pageoffice实现了在线编辑office文件.在保存时我们一般要传递一个文件的原路径,用于在后台的保存方法进行保存使用.但是保存方法是跟pageoffice有一定的耦合,不能灵活进行传参.pageoffice提供了一种方式,可以通过在页面的input标签,在后面使用一个api进行接收,下面上代码,

/**
     * 打开在线编辑页面
     */
    @RequestMapping("editFileInfo")
    public String editFileInfo(String fileId, HttpServletRequest request){
        PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);
        poCtrl1.setServerPage(request.getContextPath() + "/poserver.zz"); // 此行必须
        FileInfo fileInfo = fileService.getFileInfoById(fileId);//根据自己系统获取上传文件对象
        //添加保存按钮
        poCtrl1.addCustomToolButton("保存并关闭","Save",1);
        //设置保存的url
        poCtrl1.setSaveFilePage("saveFileInfo");
        if(fileInfo == null)
            throw new IllegalStateException("系统找不到该文件");
        String  fileType = fileInfo.getType();
        OpenModeType openModeType = OpenModeType.docNormalEdit;     //默认doc
        if ("xls".equals(fileType) || "xlsx".equals(fileType))
            openModeType = OpenModeType.xlsNormalEdit;
        else if ("doc".equals(fileType) || "docx".equals(fileType))
            openModeType = OpenModeType.docNormalEdit;
        else if ("ppt".equals(fileType) )
            openModeType = OpenModeType.pptNormalEdit;
        else if ("vsd".equals(fileType) )
            openModeType = OpenModeType.vsdNormalEdit;
        else if ("mpp".equals(fileType) )
            openModeType = OpenModeType.mppNormalEdit;
        User user = getCurUser();
        String savePath = "xxx"; //根据自己系统获取文件的实际存放路径
       
        poCtrl1.webOpen(saveFullPath.toFile().toString(), openModeType,"管理员" );
        poCtrl1.setCustomToolbar(false);//隐藏自定义工具栏
        poCtrl1.setCaption("wing");
        poCtrl1.setTagId("PageOfficeCtrl1"); // 此行必须
        request.setAttribute("poCtrl", poCtrl1);
        request.setAttribute("savePath",savePath );//传递文件路径到页面
        return "pageoffice/view/editFileInfo";
    }
<%
    PageOfficeCtrl poCtrl=(PageOfficeCtrl)request.getAttribute("poCtrl");
    String savePath = (String)request.getAttribute("savePath");//在后台打开编辑页面的方法中放文件路径到request域
%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>office文件编辑</title>
    <script type="text/javascript" src=" jquery.min.js"></script>
    <script type="text/javascript" src=" pageoffice.js" id="po_js_main"></script>
</head>
<body>
<%--用于向保存请求的方法传递参数--%>
<input id="savePath" name="savePath" type="hidden" value="<%=savePath%>"/>

<script type="text/javascript">
    //保存
    function Save() {
        document.getElementById("PageOfficeCtrl1").WebSave();
        window.external.close();//关闭POBrowser窗口
    }
</script>
<div style="width:100%; height:100%;">
    <%=poCtrl.getHtmlCode("PageOfficeCtrl1")%>
</div>
</body>
</html>
 //编辑后保存
    @RequestMapping("saveFileInfo")
    public  void  saveFileInfo(HttpServletRequest request, HttpServletResponse response){
        FileSaver fs = new FileSaver(request, response);
        String savePath = fs.getFormField("savePath");//获取传递的文件路径参数
        fs.saveToFile(savePath);
        fs.close();
    }
发布了53 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_40085888/article/details/89918056