301 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			301 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="OnlineEditingPrivate.aspx.cs" Inherits="FineUIPro.Web.AttachFile.OnlineEditingPrivate" %>
 | 
						||
<%@ Import Namespace="BLL" %>
 | 
						||
 | 
						||
<!DOCTYPE html>
 | 
						||
 | 
						||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
						||
 | 
						||
<head runat="server">
 | 
						||
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
						||
    <link rel="icon" href="/favicon.ico" type="image/x-icon" />
 | 
						||
    <title>
 | 
						||
        Spire.Office
 | 
						||
    </title>
 | 
						||
 | 
						||
    <style>
 | 
						||
        html {
 | 
						||
            height: 100%;
 | 
						||
            width: 100%;
 | 
						||
        }
 | 
						||
 | 
						||
        body {
 | 
						||
            background: #fff;
 | 
						||
            color: #333;
 | 
						||
            font-family: Arial, Tahoma, sans-serif;
 | 
						||
            font-size: 12px;
 | 
						||
            font-weight: normal;
 | 
						||
            height: 100%;
 | 
						||
            margin: 0;
 | 
						||
            overflow-y: hidden;
 | 
						||
            padding: 0;
 | 
						||
            text-decoration: none;
 | 
						||
        }
 | 
						||
 | 
						||
        form {
 | 
						||
            height: 100%;
 | 
						||
        }
 | 
						||
 | 
						||
        div {
 | 
						||
            margin: 0;
 | 
						||
            padding: 0;
 | 
						||
        }
 | 
						||
    </style>
 | 
						||
 | 
						||
    <script language="javascript" type="text/javascript"
 | 
						||
        src="https://lygcgs.com.cn:8060/web/editors/spireapi/SpireCloudEditor.js"></script>
 | 
						||
 | 
						||
    <script type="text/javascript" language="javascript">
 | 
						||
        var docEditor;
 | 
						||
        var fileName = "";
 | 
						||
        var lang = "zh";
 | 
						||
        var fileType = "";
 | 
						||
        var token = null;
 | 
						||
        var appid = null;
 | 
						||
        var appkey = null;
 | 
						||
        //console.log(Appid + "---" + appkey);
 | 
						||
        var innerAlert = function (message) {
 | 
						||
            if (console && console.log)
 | 
						||
                console.log(message);
 | 
						||
        };
 | 
						||
 | 
						||
        var onReady = function () {
 | 
						||
            innerAlert("Document editor ready");
 | 
						||
 | 
						||
        };
 | 
						||
 | 
						||
        var onDocumentStateChange = function (event) {
 | 
						||
            var title = document.title.replace(/\*$/g, "");
 | 
						||
            document.title = title + (event.data ? "*" : "");
 | 
						||
        };
 | 
						||
 | 
						||
        var onRequestEditRights = function () {
 | 
						||
            location.href = location.href.replace(RegExp("action=view\&?", "i"), "");
 | 
						||
        };
 | 
						||
 | 
						||
        var onError = function (event) {
 | 
						||
            if (event)
 | 
						||
                innerAlert(event.data);
 | 
						||
        };
 | 
						||
 | 
						||
        var onOutdatedVersion = function (event) {
 | 
						||
            location.reload(true);
 | 
						||
        };
 | 
						||
 | 
						||
        function ajax(options) {
 | 
						||
            options = options || {};
 | 
						||
            var method = (options.type || "GET").toUpperCase(),
 | 
						||
                url = options.url,
 | 
						||
                queryString = null;
 | 
						||
            if (!url)
 | 
						||
                return;
 | 
						||
            if (options.data) {
 | 
						||
                queryString = [];
 | 
						||
                for (var attr in options.data) {
 | 
						||
                    queryString.push(attr + "=" + options.data[attr]);
 | 
						||
                }
 | 
						||
                queryString = queryString.join("&");
 | 
						||
            }
 | 
						||
            if (method === "GET" && queryString) {
 | 
						||
                url += "?" + queryString;
 | 
						||
                queryString = "";
 | 
						||
            }
 | 
						||
            var xhr = new XMLHttpRequest();
 | 
						||
            xhr.open(method, url, true);
 | 
						||
            if (method === "POST")
 | 
						||
                xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 | 
						||
            xhr.setRequestHeader("token", "<%=this.CurrUser.UserId%>");
 | 
						||
            xhr.send(queryString);
 | 
						||
            xhr.onreadystatechange = function () {
 | 
						||
                if (xhr.readyState === 4) {
 | 
						||
                    if (xhr.status === 200) {
 | 
						||
                        var data = xhr.responseText;
 | 
						||
                        if (options.dataType === "json")
 | 
						||
                            data = JSON.parse(data);
 | 
						||
                        options.success && options.success(data);
 | 
						||
                    } else {
 | 
						||
                        options.error && options.error(xhr.status);
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            }
 | 
						||
        }
 | 
						||
        var callbackfn = function (result) {
 | 
						||
            console.log(result.data);
 | 
						||
            if (result && result.data) {
 | 
						||
                var data = result.data,
 | 
						||
                    fileName = data[0],
 | 
						||
                    url = data[1];
 | 
						||
                if (fileName.indexOf('=') > -1)
 | 
						||
                    fileName = fileName.split('=')[1];
 | 
						||
                var host = location.hostname;
 | 
						||
                ajax({
 | 
						||
                    url: '<%=CallBackUrl%>',
 | 
						||
                    type: 'post',
 | 
						||
                    data: {
 | 
						||
                        'UrlStr': url,
 | 
						||
                        'PCUrl': '<%=PCUrl%>',
 | 
						||
                    },
 | 
						||
                    dataType: 'json',
 | 
						||
                    async: false,
 | 
						||
                    success: function (json) {
 | 
						||
                        if (json.code == 1 || json.code == '1') {
 | 
						||
                            alert('保存成功');
 | 
						||
                        } else {
 | 
						||
                            this.error(json, '保存失败');
 | 
						||
                        }
 | 
						||
                    },
 | 
						||
                    error: function (json, msg) {
 | 
						||
                        alert(+msg);
 | 
						||
                    }
 | 
						||
                });
 | 
						||
            }
 | 
						||
        };
 | 
						||
        var connectEditor = function () {
 | 
						||
            var type = 'desktop';
 | 
						||
            if (type == "desktop") {
 | 
						||
                var app = navigator.appVersion;
 | 
						||
                if (app.toLowerCase().indexOf('window') != -1) {
 | 
						||
                    type = "desktop";
 | 
						||
                } else {
 | 
						||
                    type = "mobile";
 | 
						||
                }
 | 
						||
            };
 | 
						||
        // var urlString = "https://cloud.e-iceblue.cn/demo/sample.docx";
 | 
						||
           <%-- //var urlString = "<%=BLL.Funs.SGGLUrl%>" + "<%=PCUrl%>";--%>
 | 
						||
            var urlString =   "<%=urlString%>";
 | 
						||
 | 
						||
            var arrfn = urlString.split(".");
 | 
						||
            var strp = arrfn[arrfn.length - 1];
 | 
						||
            var documentTypeValue = null;
 | 
						||
            switch (strp) {
 | 
						||
                case "xls":
 | 
						||
                case "xlsx":
 | 
						||
                case "xlsm":
 | 
						||
                case "xlt":
 | 
						||
                case "xltx":
 | 
						||
                case "xltm":
 | 
						||
                case "ods":
 | 
						||
                case "fods":
 | 
						||
                case "ots":
 | 
						||
                case "csv":
 | 
						||
                    documentTypeValue = "spreadsheet";
 | 
						||
                    break;
 | 
						||
                case "pps":
 | 
						||
                case "ppsx":
 | 
						||
                case "ppsm":
 | 
						||
                case "ppt":
 | 
						||
                case "pptx":
 | 
						||
                case "pptm":
 | 
						||
                case "pot":
 | 
						||
                case "potx":
 | 
						||
                case "potm":
 | 
						||
                case "odp":
 | 
						||
                case "fodp":
 | 
						||
                case "otp":
 | 
						||
                    documentTypeValue = "presentation";
 | 
						||
                    break;
 | 
						||
                default:
 | 
						||
                    documentTypeValue = "document";
 | 
						||
                    break;
 | 
						||
            }
 | 
						||
 | 
						||
            docEditor = new SpireCloudEditor.OpenApi("iframeEditor", {
 | 
						||
                fileAttrs: {
 | 
						||
                    fileInfo: {
 | 
						||
                        name: '',
 | 
						||
                        ext: '',
 | 
						||
                        primary: '<%=urlStringMD5%>',
 | 
						||
                        creator: '',
 | 
						||
                        createTime: new Date('20210505')
 | 
						||
                    },
 | 
						||
                    sourceUrl: urlString,
 | 
						||
                    createUrl: '',
 | 
						||
                    callbackUrl: '', ////This item can be empty, but only if the 'onSave' callback function must be defined in events. If the callback function is undefined and this item is empty, Cloud Editor will not provide save function.
 | 
						||
                    verification: null, //用户文件系统下载文件时若需要验证类似token的数据可以写在这里
 | 
						||
                    canEdit: true
 | 
						||
                },
 | 
						||
                templates: "",
 | 
						||
                whiteLabel: true,
 | 
						||
                user: {
 | 
						||
                    primary: '',
 | 
						||
                    name: '<%=this.CurrUser.UserName%>',
 | 
						||
                    canSave: true,
 | 
						||
                    customization: {
 | 
						||
                        public: {
 | 
						||
                            common: {
 | 
						||
                                whiteLabel: true,
 | 
						||
                                defaultZoom: 1,
 | 
						||
                                openReviewChanges: false,
 | 
						||
                                permGroups: ['everyone'], //限制编辑分组
 | 
						||
                                viewVersion: false,
 | 
						||
                                header: {
 | 
						||
                                    hideTitle: false,
 | 
						||
                                    defaultView: 'full'
 | 
						||
                                }
 | 
						||
                            },
 | 
						||
                            word: null, //doc定制
 | 
						||
                            powerpoint: null, //ppt定制
 | 
						||
                            excel: null //xls定制
 | 
						||
                        },
 | 
						||
                        "private": {
 | 
						||
                            "token": null,
 | 
						||
                            "appid": null,
 | 
						||
                            "appkey": null
 | 
						||
                        }
 | 
						||
                    }
 | 
						||
                },
 | 
						||
                editorAttrs: { //编辑器配置
 | 
						||
                    editorWidth: '100%',
 | 
						||
                    editorHeight: '100%',
 | 
						||
                    editorMode: '<%=editorMode%>',
 | 
						||
                    editorType: 'document', //编辑器类型,可不配置,程序根据文件类型获取,结果为 document,presentation,spreadsheet
 | 
						||
                    platform: 'windows', //编辑器平台类型,可选windows, mobile, embedded
 | 
						||
                    viewLanguage: 'zh', //平台界面展示语言可选en/zh
 | 
						||
                    canChat: true, //是否可聊天
 | 
						||
                    canComment: true, //是否可批注
 | 
						||
                    canReview: true,
 | 
						||
                    canDownload: true,
 | 
						||
                    canForcesave: true,
 | 
						||
                    embedded: {
 | 
						||
                        saveUrl: '',
 | 
						||
                        embedUrl: '',
 | 
						||
                        shareUrl: ''
 | 
						||
                    },
 | 
						||
                    events: {
 | 
						||
                        'onReady': onReady,
 | 
						||
                        'onDocumentStateChange': onDocumentStateChange,
 | 
						||
                        'onError': onError,
 | 
						||
                        'onRequestEditRights': onRequestEditRights,
 | 
						||
                        'onOutdatedVersion': onOutdatedVersion,
 | 
						||
                        'onSave': callbackfn
 | 
						||
                    }
 | 
						||
                }
 | 
						||
            },
 | 
						||
                appid,
 | 
						||
                appkey
 | 
						||
            );
 | 
						||
        };
 | 
						||
        if (window.addEventListener) {
 | 
						||
            window.addEventListener("load", connectEditor);
 | 
						||
        } else if (window.attachEvent) {
 | 
						||
            window.attachEvent("load", connectEditor);
 | 
						||
        }
 | 
						||
    </script>
 | 
						||
</head>
 | 
						||
 | 
						||
<body>
 | 
						||
    <form name="form1" method="post" action="./docEditor.aspx?fileID=demo+(2).docx&lang=zh" id="form1">
 | 
						||
        <div>
 | 
						||
            <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
 | 
						||
                value="/wEPDwUKMTkyMjc5MTU4M2RkBQQQBsVcOHQbzTlwYapiES2Trc9Z/U4CC+r9rluZubc=" />
 | 
						||
        </div>
 | 
						||
        <div>
 | 
						||
            <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="C2EAC0DE" />
 | 
						||
        </div>
 | 
						||
        <div id="iframeEditor">
 | 
						||
        </div>
 | 
						||
    </form>
 | 
						||
</body>
 | 
						||
 | 
						||
</html>
 | 
						||
 |