Jelajahi Sumber

离线考试上传:文件类型检测

Michael Wang 4 tahun lalu
induk
melakukan
1e52ce8b43
1 mengubah file dengan 10 tambahan dan 3 penghapusan
  1. 10 3
      src/features/OfflineExam/OfflineExamUpload.vue

+ 10 - 3
src/features/OfflineExam/OfflineExamUpload.vue

@@ -37,7 +37,6 @@
       :on-format-error="handleFormatError"
       :on-success="handleSuccess"
       :on-error="handleError"
-      :multiple="selectedFileType === 'IMAGE'"
     >
       <div v-if="selectedFileType !== 'IMAGE'">
         <i-button
@@ -171,9 +170,10 @@ export default {
             return "image/gif";
           case "25504446":
             return "application/pdf";
-          case "FFD8FFDB":
           case "FFD8FFE0":
           case "FFD8FFE1":
+          case "FFD8FFE2":
+          case "FFD8FFE3":
             return "image/jpeg";
           case "504B0304":
             return "application/zip";
@@ -201,6 +201,13 @@ export default {
             hex: hex,
           });
 
+          if (!getMimetype(hex).toUpperCase().includes(this.selectedFileType)) {
+            this.$Notice.warning({
+              title: "文件内容与所选文件类型不一致",
+            });
+            resolve("和所选文件类型不一致");
+          }
+
           if (["application/pdf"].includes(getMimetype(hex))) {
             if (!file.name.endsWith(".pdf")) {
               this.loadingStatus = false;
@@ -390,7 +397,7 @@ export default {
 
       if (format !== true) {
         console.log({ format });
-        return;
+        throw "文件类型检测不通过";
       }
 
       const fileSizeCheckResult = await new Promise((resolve, reject) =>