From a615f757084e4d11a90ed42698b8a8cbcc083cb8 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Fri, 24 Apr 2026 10:32:50 +0800
Subject: [PATCH] fix: 添加成果类型字段,视频或者图片
---
drone-common/src/main/java/org/sxkj/common/utils/HeaderUtils.java | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 115 insertions(+), 0 deletions(-)
diff --git a/drone-common/src/main/java/org/sxkj/common/utils/HeaderUtils.java b/drone-common/src/main/java/org/sxkj/common/utils/HeaderUtils.java
index 71d04ff..28e6dc3 100644
--- a/drone-common/src/main/java/org/sxkj/common/utils/HeaderUtils.java
+++ b/drone-common/src/main/java/org/sxkj/common/utils/HeaderUtils.java
@@ -223,6 +223,121 @@
}
/**
+ * 根据URL获取附件类型
+ * 通过文件扩展名判断附件类型:
+ * - 图片类型:jpg, jpeg, png, gif, bmp, webp, svg 等 -> 返回 1
+ * - 视频类型:mp4, avi, mov, wmv, flv, mkv, mpeg, mpg 等 -> 返回 2
+ * - 文档类型:pdf, doc, docx, xls, xlsx, ppt, pptx, txt 等 -> 返回 3
+ * - 其他类型 -> 返回 0
+ *
+ * @param url 文件URL地址
+ * @return 附件类型:1-图片,2-视频,3-文档,0-其他
+ */
+ public static Integer getAttachmentType(String url) {
+ if (StringUtils.isEmpty(url)) {
+ return 0;
+ }
+
+ // 提取文件扩展名
+ String extension = getFileExtension(url);
+ if (StringUtils.isEmpty(extension)) {
+ return 0;
+ }
+
+ // 转换为小写进行比较
+ String extLower = extension.toLowerCase();
+
+ // 图片类型
+ if (isImageType(extLower)) {
+ return 1;
+ }
+
+ // 视频类型
+ if (isVideoType(extLower)) {
+ return 2;
+ }
+
+ // 文档类型
+ if (isDocumentType(extLower)) {
+ return 3;
+ }
+
+ // 其他类型
+ return 0;
+ }
+
+ /**
+ * 从URL中提取文件扩展名
+ *
+ * @param url 文件URL地址
+ * @return 文件扩展名(不包含点),如果无法提取则返回null
+ */
+ private static String getFileExtension(String url) {
+ if (StringUtils.isEmpty(url)) {
+ return null;
+ }
+
+ // 去除URL参数部分(?后面的内容)
+ int questionMarkIndex = url.indexOf('?');
+ if (questionMarkIndex != -1) {
+ url = url.substring(0, questionMarkIndex);
+ }
+
+ // 查找最后一个点的位置
+ int lastDotIndex = url.lastIndexOf('.');
+ if (lastDotIndex == -1 || lastDotIndex == url.length() - 1) {
+ return null;
+ }
+
+ // 提取扩展名
+ return url.substring(lastDotIndex + 1);
+ }
+
+ /**
+ * 判断是否为图片类型
+ *
+ * @param extension 文件扩展名(小写)
+ * @return 是否为图片类型
+ */
+ private static boolean isImageType(String extension) {
+ return extension.equals("jpg") || extension.equals("jpeg") ||
+ extension.equals("png") || extension.equals("gif") ||
+ extension.equals("bmp") || extension.equals("webp") ||
+ extension.equals("svg") || extension.equals("tiff") ||
+ extension.equals("tif") || extension.equals("ico");
+ }
+
+ /**
+ * 判断是否为视频类型
+ *
+ * @param extension 文件扩展名(小写)
+ * @return 是否为视频类型
+ */
+ private static boolean isVideoType(String extension) {
+ return extension.equals("mp4") || extension.equals("avi") ||
+ extension.equals("mov") || extension.equals("wmv") ||
+ extension.equals("flv") || extension.equals("mkv") ||
+ extension.equals("mpeg") || extension.equals("mpg") ||
+ extension.equals("webm") || extension.equals("m4v") ||
+ extension.equals("3gp");
+ }
+
+ /**
+ * 判断是否为文档类型
+ *
+ * @param extension 文件扩展名(小写)
+ * @return 是否为文档类型
+ */
+ private static boolean isDocumentType(String extension) {
+ return extension.equals("pdf") || extension.equals("doc") ||
+ extension.equals("docx") || extension.equals("xls") ||
+ extension.equals("xlsx") || extension.equals("ppt") ||
+ extension.equals("pptx") || extension.equals("txt") ||
+ extension.equals("csv") || extension.equals("zip") ||
+ extension.equals("rar");
+ }
+
+ /**
* 获取当前HttpServletRequest对象
*
* @return HttpServletRequest对象,可能为null
--
Gitblit v1.9.3