From f50671d2ba640d1c62f98ade3d09388e3a6c13af Mon Sep 17 00:00:00 2001 From: LingYuZhao <113756063+BeardedManZhao@users.noreply.github.com> Date: Sat, 31 Aug 2024 15:32:48 +0800 Subject: [PATCH] =?UTF-8?q?2.0.0=E7=89=88=E6=9C=AC=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新版本支持了不会内存溢出的文件上传操作! --- README.md | 5 +++ web/FileExplorer.html | 2 +- web/js/diskMirror.js | 96 +++++++++++++++---------------------------- 3 files changed, 40 insertions(+), 63 deletions(-) diff --git a/README.md b/README.md index a3ae5fd..3666d14 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,11 @@ const indexConfig = { ## 更新记录 +### 2.0.0 版本 发布 + +- 适用服务器版本:2024-08-31 以后的版本 +- 2.0.0 版本的前端上传文件将不会出现内存溢出的情况,2.0.0版本是为了适配 2024-08-31 以及以后发布的后端服务器的! + ### 1.0.7 版本 发布 - 为 logo 图标增加了点击展示获取版本号的动作 diff --git a/web/FileExplorer.html b/web/FileExplorer.html index 5784128..e881d24 100644 --- a/web/FileExplorer.html +++ b/web/FileExplorer.html @@ -35,7 +35,7 @@ style="text-align: center" title="diskMirror-front 版本:点击查看前端界面历史包">
 1.0.7
+ class="load-icon-2"> 2.0.0
diff --git a/web/js/diskMirror.js b/web/js/diskMirror.js index 097e714..23752e5 100644 --- a/web/js/diskMirror.js +++ b/web/js/diskMirror.js @@ -72,25 +72,24 @@ class DiskMirror { * userId: int, * type: 'Binary'|'TEXT' * }} 这里是请求参数对象 其中的文件名字代表上传到后端之后的文件名字,userId 代表的就是文件要上传到的指定空间的id;type就是代表的文件的类型 支持二进制和文本两种格式 - * @param file {File|string} 需要被上传的文件对象 + * @param file {File} 需要被上传的文件对象 * @param okFun {function} 操作成功之后的回调函数 输入是被上传文件的json对象 * @param errorFun {function} 操作失败之后的回调函数 输入是错误信息 * @param checkFun {function} 上传前的检查函数 输入是上传的文件对象的 json 数据 以及 文件对象本身,如果返回的是一个false 则代表不进行上传操作 */ upload(params, file, okFun = undefined, errorFun = (e) => 'res' in e ? alert(e['res']) : alert(e), checkFun = undefined) { - if (file instanceof String) { - this.upload(params, new File([new Blob([file])], params['fileName']), okFun, errorFun, checkFun); - return; - } if (checkFun !== undefined && !checkFun(params, file)) { return; } const formData = new FormData(); // 设置请求参数数据包 params["secure.key"] = this.getSk(); - formData.append('params', JSON.stringify(params)); + const blob = new Blob([JSON.stringify(params)], { + type: 'application/json' + }); + formData.append('params', blob, "params"); // 设置文件数据包 - formData.append('file', file); + formData.append('file', file, "file"); // 开始进行请求发送 axios.defaults.withCredentials = true; axios( @@ -154,7 +153,10 @@ class DiskMirror { if (checkFun !== undefined && !checkFun(params)) { return; } - formData.append('params', JSON.stringify(params)); + const blob = new Blob([JSON.stringify(params)], { + type: 'application/json' + }); + formData.append('params', blob, "params"); // 开始进行请求发送 axios.defaults.withCredentials = true; axios( @@ -217,7 +219,10 @@ class DiskMirror { if (checkFun !== undefined && !checkFun(params)) { return; } - formData.append('params', JSON.stringify(params)); + const blob = new Blob([JSON.stringify(params)], { + type: 'application/json' + }); + formData.append('params', blob, "params"); // 开始进行请求发送 axios.defaults.withCredentials = true; axios( @@ -282,7 +287,10 @@ class DiskMirror { if (checkFun !== undefined && !checkFun(params)) { return; } - formData.append('params', JSON.stringify(params)); + const blob = new Blob([JSON.stringify(params)], { + type: 'application/json' + }); + formData.append('params', blob, "params"); // 开始进行请求发送 axios.defaults.withCredentials = true; axios( @@ -345,7 +353,10 @@ class DiskMirror { if (checkFun !== undefined && !checkFun(params)) { return; } - formData.append('params', JSON.stringify(params)); + const blob = new Blob([JSON.stringify(params)], { + type: 'application/json' + }); + formData.append('params', blob, "params"); // 开始进行请求发送 axios.defaults.withCredentials = true; axios( @@ -429,7 +440,10 @@ class DiskMirror { const formData = new FormData(); // 设置请求参数数据包 params["secure.key"] = this.getSk(); - formData.append('params', JSON.stringify(params)); + const blob = new Blob([JSON.stringify(params)], { + type: 'application/json' + }); + formData.append('params', blob, "params"); // 开始进行请求发送 axios.defaults.withCredentials = true; axios( @@ -464,53 +478,6 @@ class DiskMirror { }); } - /** - * 获取指定空间的所有的进度条 - * @param userId {int|string} 指定要获取到的文件进度数据对应的空间id - * @param okFun {function} 操作成功之后的回调函数 输入是被文件进度的json对象 - * @param errorFun {function} 操作失败之后的回调函数 输入是错误信息 - * @param checkFun {function} 操作前的检查函数 输入是请求参数对象,如果返回的是一个false 则代表检查失败不继续操作 - */ - getAllProgressBar(userId, okFun = undefined, errorFun = (e) => 'res' in e ? alert(e['res']) : alert(e), checkFun = undefined) { - if (userId === undefined || okFun === undefined) { - const err = "您必须要输入 userId 和 okFun 参数才可以进行文件对象的获取!"; - if (errorFun !== undefined) { - errorFun(err); - } else { - console.error(err); - } - return - } - if (checkFun !== undefined && !checkFun(userId)) { - return; - } - axios.defaults.withCredentials = true; - // 开始获取 - axios( - { - method: 'post', - url: this.diskMirrorUrl + this.getController() + '/getAllProgressBar', - params: { - id: userId - } - } - ).then(function (res) { - // 处理成功 - if (okFun !== undefined) { - okFun(res.data); - } else { - console.info(res.data); - } - }).catch(function (err) { - // 处理错误 - if (errorFun !== undefined) { - errorFun(err); - } else { - console.error(err); - } - }); - } - /** * 向后端中查询文件转存情况 * @param params {{ @@ -528,8 +495,10 @@ class DiskMirror { const formData = new FormData(); // 设置请求参数数据包 params["secure.key"] = this.getSk(); - formData.append('params', JSON.stringify(params)); - // 开始进行请求发送 + const blob = new Blob([JSON.stringify(params)], { + type: 'application/json' + }); + formData.append('params', blob, "params"); // 开始进行请求发送 axios.defaults.withCredentials = true; axios( { @@ -654,7 +623,10 @@ class DiskMirror { type: type, "secure.key": this.getSk() }; - formData.append('params', JSON.stringify(params)); + const blob = new Blob([JSON.stringify(params)], { + type: 'application/json' + }); + formData.append('params', blob, "params"); // 开始进行请求发送 axios.defaults.withCredentials = true;