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>
 | ||
| 
 |