知识库-功能联调

main
ysn 8 hours ago
parent 9a659a4475
commit 94570cf23a
  1. 57
      src/views/knowledge/index.vue

@ -659,6 +659,22 @@ export default {
const file = event.target.files[0];
if (!file) return;
//
const validateResult = this.validateFileName(file.name);
if (!validateResult.valid) {
this.$modal.msgError(validateResult.message);
event.target.value = "";
return;
}
//
// const sizeResult = this.validateFileSize(file.size);
// if (!sizeResult.valid) {
// this.$modal.msgError(sizeResult.message);
// event.target.value = "";
// return;
// }
this.currentUploadFile = file;
this.uploadProgressDialogVisible = true;
this.uploadPercent = 0;
@ -672,6 +688,47 @@ export default {
//
event.target.value = "";
},
//
validateFileName(fileName) {
// 1.
if (!fileName || fileName.trim() === "") {
return { valid: false, message: "文件名不能为空" };
}
// 2. 20
const nameWithoutExt = fileName.replace(/\.[^/.]+$/, "");
if (nameWithoutExt.length > 20) {
return { valid: false, message: "文件名(不含扩展名)不能超过20个字符" };
}
// 3.
if (/^\d/.test(nameWithoutExt)) {
return { valid: false, message: "文件名不能以数字开头" };
}
// 4.
const specialChars = /^[!@#$%^&*()_+\-=\[\]{}|;:,.<>?~`]/;
if (specialChars.test(nameWithoutExt)) {
return { valid: false, message: "文件名不能以特殊字符开头" };
}
// 5. Windows
const invalidChars = /[\\/:*?"<>|]/;
if (invalidChars.test(fileName)) {
return { valid: false, message: "文件名不能包含 \\ / : * ? \" < > | 等特殊字符" };
}
return { valid: true, message: "" };
},
//
validateFileSize(size) {
// 100MB
const maxSize = 100 * 1024 * 1024;
if (size > maxSize) {
return { valid: false, message: `文件大小不能超过100MB,当前文件大小:${(size / (1024 * 1024)).toFixed(2)}MB` };
}
return { valid: true, message: "" };
},
// MinIO PDF
async uploadToMinio(file, recordId) {
try {

Loading…
Cancel
Save