From 8d16af1b7897d62350a73d86851d839e0f2ad05b Mon Sep 17 00:00:00 2001 From: kuaifan Date: Fri, 17 Mar 2023 16:32:09 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=A3=80=E6=B5=8B=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E5=8C=85=E5=90=AB=E7=89=B9=E6=AE=8A=E5=AD=97?= =?UTF-8?q?=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/FileController.php | 4 ++++ package.json | 2 +- resources/assets/js/components/QuickEdit.vue | 4 ++++ resources/assets/js/pages/manage/file.vue | 8 ++++++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/FileController.php b/app/Http/Controllers/Api/FileController.php index 287b4dc68..97565726b 100755 --- a/app/Http/Controllers/Api/FileController.php +++ b/app/Http/Controllers/Api/FileController.php @@ -255,6 +255,10 @@ class FileController extends AbstractController } elseif (mb_strlen($name) > 32) { return Base::retError('文件名称最多只能设置32个字'); } + $tmpName = preg_replace("/[\\\\\/:*?\"<>|]/", '', $name); + if ($tmpName != $name) { + return Base::retError("文件名称不能包含这些字符:\/:*?\"<>|"); + } // if ($id > 0) { // 修改 diff --git a/package.json b/package.json index bee4d1464..72dffeb8a 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "stylus-loader": "^7.1.0", "tinymce": "^5.10.3", "tui-calendar-hi": "^1.15.1-5", - "view-design-hi": "^4.7.0-42", + "view-design-hi": "^4.7.0-43", "vite": "^2.9.15", "vite-plugin-file-copy": "^1.0.0", "vite-plugin-require": "^1.1.10", diff --git a/resources/assets/js/components/QuickEdit.vue b/resources/assets/js/components/QuickEdit.vue index 62fd5bc77..a1e31a766 100644 --- a/resources/assets/js/components/QuickEdit.vue +++ b/resources/assets/js/components/QuickEdit.vue @@ -14,6 +14,7 @@ ref="input" v-model="content" :disabled="isLoad" + :parser="parser" enterkeyhint="done" @on-keydown="onKeydown" @on-blur="onBlur"/> @@ -55,6 +56,9 @@ export default { type: Boolean, default: false }, + parser: { + type: Function + }, }, data() { diff --git a/resources/assets/js/pages/manage/file.vue b/resources/assets/js/pages/manage/file.vue index f3baec94d..916101b92 100644 --- a/resources/assets/js/pages/manage/file.vue +++ b/resources/assets/js/pages/manage/file.vue @@ -132,6 +132,7 @@ v-model="item.newname" size="small" :disabled="!!item._load" + :parser="onParser" @on-blur="onBlur(item)" @on-keyup="onKeyup($event, item)"/>
@@ -552,6 +553,7 @@ export default { value: row.newname, autofocus: true, disabled: !!row._load, + parser: this.onParser }, style: { width: 'auto' @@ -590,6 +592,7 @@ export default { value: row.name, autoEdit: !!row._edit, clickOutSide: false, + parser: this.onParser }, on: { 'on-edit-change': (b) => { @@ -1402,6 +1405,10 @@ export default { }) }, + onParser(val) { + return val.replace(/[\\\/:*?\"<>|]/g, '') + }, + onBlur(item) { if (this.fileLists.find(({id, _edit}) => id == item.id && !_edit)) { return; @@ -1450,6 +1457,7 @@ export default { name: item.newname, type: item.type, }, + spinner: 2000 }).then(({data, msg}) => { $A.messageSuccess(msg) this.setLoad(item.id, false)