diff --git a/fss/www/index.html b/fss/www/index.html index 94a095f..d3649bb 100644 --- a/fss/www/index.html +++ b/fss/www/index.html @@ -38,6 +38,11 @@ background-color: #da1616; } + .hsval { + font-size: 10px; + margin-left: 16px; + } + .folder-icon { mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyAgcHJlc2VydmVBc3BlY3RSYXRpbz0neE1pZFlNaWQgbWVldCcgIHZpZXdCb3g9IjAgMCAyNCAyNCIgPjxwYXRoIGQ9Ik0xMCA0SDRDMi45IDQgMiA0LjkgMiA2VjE4QzIgMTkuMSAyLjkgMjAgNCAyMEgyMEMyMS4xIDIwIDIyIDE5LjEgMjIgMThWOEMyMiA2LjkgMjEuMSA2IDIwIDZIMTJMMTAgNFoiIC8+PC9zdmc+"); -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyAgcHJlc2VydmVBc3BlY3RSYXRpbz0neE1pZFlNaWQgbWVldCcgIHZpZXdCb3g9IjAgMCAyNCAyNCIgPjxwYXRoIGQ9Ik0xMCA0SDRDMi45IDQgMiA0LjkgMiA2VjE4QzIgMTkuMSAyLjkgMjAgNCAyMEgyMEMyMS4xIDIwIDIyIDE5LjEgMjIgMThWOEMyMiA2LjkgMjEuMSA2IDIwIDZIMTJMMTAgNFoiIC8+PC9zdmc+"); @@ -51,6 +56,11 @@ background-repeat: no-repeat; background-color: #0e0b8b; } + + #rstatus { + height: 360px; + overflow-y: auto; + } @@ -59,7 +69,7 @@

文件更新控制台

-

ver:2.04

+

ver:3.04

@@ -75,7 +85,7 @@
监视目录
- +
@@ -115,7 +125,7 @@ fa.php - HASh:98986 + HASh:98986
同步 @@ -147,7 +157,7 @@
- +
@@ -169,19 +179,13 @@
- +
+

1、获取远程服务器的文件信息,2、校验hash值3、枚举出所有hash不同的文件4、勾选文件更新即可5、根据勾选的文件制作更新zip文件,发送到目标服务器。文件的参考HASH值,如何同步到几个平台?

+
运行状态
-
    -
  • 1、获取远程服务器的文件信息
  • -
  • 2、校验hash值
  • -
  • 3、枚举出所有hash不同的文件
  • -
  • 4、勾选文件更新即可
  • -
  • 5、根据勾选的文件制作更新zip文件,发送到目标服务器
  • -
  • 文件的参考HASH值,如何同步到几个平台?
  • - -
+
    @@ -205,16 +209,23 @@ } // click function - $("#entsip").on("click", function () { + $("#tentsip").on("click", function () { tgfs(); }) // 目标服务器的文件信息 var tgfs = function () { // - scip = $("#scip").val(); + scip = $("input[name='tsip']").val(); // ip storage sessionStorage.setItem("scip", scip); + //监视目录 + var jsdir = $("input[name='tsdir']").val(); + if (jsdir != '') { + urlpath = encodeURIComponent(btoa(jsdir)); + } + // + var html = "
  • 输入目标服务器" + scip + "
  • "; // 目标站 @@ -238,7 +249,8 @@ if (v.dirflag) { html += "" + v.fname + "
    "; } else { - html += "" + v.fname + "
    "; + html += "" + v.fname + + "HASH:" + v.hash + ""; } if (v.isbackup == 1) { @@ -254,7 +266,8 @@ writelog(scip + "获取数据:" + res.data.list.length + "条数据") // 客户端监控目录 $("#sc01").text(res.workdir); - $("#sc02").text(res.curdir); + + $("#sc02").text(dbsresp(res.curdir)); }); } @@ -318,6 +331,33 @@ alert(swval); }); + //base64 编码防止请求错误 + var bsrqst = function (path) { + return encodeURIComponent(btoa(path)); + } + //解码base64 + var dbsresp = function (bsStr) { + console.log("respone base64 string ",bsStr) + return decodeURIComponent(atob(bsStr)) + } + + // 另外的base64的解码 + function safeAtob(base64Str) { + // 检查输入字符串是否是有效的Base64编码 + const base64Regex = /^[A-Za-z0-9+/]+={0,2}$/; + if (!base64Regex.test(base64Str)) { + throw new Error('The string to be decoded is not correctly encoded.'); + } + + // 如果输入字符串长度不是4的倍数,添加等号'=' + while (base64Str.length % 4 !== 0) { + base64Str += '='; + } + + return atob(base64Str); + } + + });