diff --git a/web/src/components/office/index.vue b/web/src/components/office/index.vue index fa503be85..d22d6da4d 100644 --- a/web/src/components/office/index.vue +++ b/web/src/components/office/index.vue @@ -39,7 +39,7 @@ fileUrl.value = val const fileExt = val.split('.')[1] || '' const image = ['png', 'jpg', 'jpeg', 'gif'] - ext.value = image.includes(fileExt) ? 'image' : fileExt + ext.value = image.includes(fileExt?.toLowerCase()) ? 'image' : fileExt }, { immediate: true } ) diff --git a/web/src/components/selectImage/selectImage.vue b/web/src/components/selectImage/selectImage.vue index 3be279db0..2c08d88e5 100644 --- a/web/src/components/selectImage/selectImage.vue +++ b/web/src/components/selectImage/selectImage.vue @@ -218,7 +218,7 @@ const chooseImg = (url) => { if (props.fileType) { const typeSuccess = listObj[props.fileType].some((item) => { - if (url.includes(item)) { + if (url?.toLowerCase().includes(item)) { return true } }) diff --git a/web/src/components/upload/image.vue b/web/src/components/upload/image.vue index d7f021ca9..7423cc7de 100644 --- a/web/src/components/upload/image.vue +++ b/web/src/components/upload/image.vue @@ -38,8 +38,8 @@ }) const beforeImageUpload = (file) => { - const isJPG = file.type === 'image/jpeg' - const isPng = file.type === 'image/png' + const isJPG = file.type?.toLowerCase() === 'image/jpeg' + const isPng = file.type?.toLowerCase() === 'image/png' if (!isJPG && !isPng) { ElMessage.error('上传头像图片只能是 jpg或png 格式!') return false diff --git a/web/src/utils/image.js b/web/src/utils/image.js index a2d3241e8..8b6523295 100644 --- a/web/src/utils/image.js +++ b/web/src/utils/image.js @@ -106,17 +106,21 @@ export const getUrl = (url) => { } } -export const isVideoExt = (url) => - url.endsWith('.mp4') || - url.endsWith('.mov') || - url.endsWith('.webm') || - url.endsWith('.ogg') +const VIDEO_EXTENSIONS = ['.mp4', '.mov', '.webm', '.ogg'] +const VIDEO_MIME_TYPES = ['video/mp4', 'video/webm', 'video/ogg'] +const IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/webp', 'image/svg+xml'] -export const isVideoMime = (type) => - type == 'video/mp4' || type == 'video/webm' || type == 'video/ogg' +export const isVideoExt = (url) => { + const urlLower = url?.toLowerCase() || '' + return urlLower !== '' && VIDEO_EXTENSIONS.some(ext => urlLower.endsWith(ext)) +} -export const isImageMime = (type) => - type == 'image/jpeg' || - type == 'image/png' || - type == 'image/webp' || - type == 'image/svg+xml' +export const isVideoMime = (type) => { + const typeLower = type?.toLowerCase() || '' + return typeLower !== '' && VIDEO_MIME_TYPES.includes(typeLower) +} + +export const isImageMime = (type) => { + const typeLower = type?.toLowerCase() || '' + return typeLower !== '' && IMAGE_MIME_TYPES.includes(typeLower) +} diff --git a/web/src/view/example/upload/upload.vue b/web/src/view/example/upload/upload.vue index 8e85613f8..42a4c9161 100644 --- a/web/src/view/example/upload/upload.vue +++ b/web/src/view/example/upload/upload.vue @@ -50,7 +50,7 @@