change(module): 添加获取巡检录像功能

- 在 RecordInspectionCabinetController 中添加 getVisibleVideo 方法
- 通过路径参数获取视频文件并返回
- 支持动态检测文件 MIME 类型
- 在 RuoYiConfig 中添加 myPath 配置项用于指定文件路径
IOT
zch 2 months ago
parent ea6051582b
commit 129a9ce996

@ -30,6 +30,8 @@ public class RuoYiConfig
/** 验证码类型 */
private static String captchaType;
// 自定义路径,用于获取日志信息里的文件
private static String myPath;
public static String getMyPath()
@ -43,6 +45,7 @@ public class RuoYiConfig
}
public String getName()
{
return name;

@ -164,46 +164,46 @@ public class RecordInspectionCabinetController extends BaseController
}
}
/**
* GET
* @param filePath
* @return ResponseEntity<FileSystemResource>
*/
@GetMapping("/getVisibleVideo/{filePath}")
public ResponseEntity<FileSystemResource> getVisibleVideo(@PathVariable String filePath) {
// 获取配置文件中的路径application.yml的profile
String myPath = RuoYiConfig.getMyPath();
// 构建完整的文件路径
String fileUrl = myPath + "/日志信息/巡检录像/可见光/" + filePath;
// 创建文件对象
File file = new File(fileUrl);
// 检查文件是否存在
if (file.exists()) {
// 如果文件存在,创建文件系统资源对象
FileSystemResource resource = new FileSystemResource(file);
// 设置HTTP头信息
HttpHeaders headers = new HttpHeaders();
// 设置文件长度
headers.setContentLength(file.length());
// 动态检测文件的MIME类型
try {
String contentType = Files.probeContentType(file.toPath());
if (contentType != null) {
headers.setContentType(MediaType.parseMediaType(contentType));
} else {
/**
* GET
* @param filePath
* @return ResponseEntity<FileSystemResource>
*/
@GetMapping("/getVisibleVideo/{filePath}")
public ResponseEntity<FileSystemResource> getVisibleVideo(@PathVariable String filePath) {
// 获取配置文件中的路径application.yml的profile
String myPath = RuoYiConfig.getMyPath();
// 构建完整的文件路径
String fileUrl = myPath + "/日志信息/巡检录像/可见光/" + filePath;
// 创建文件对象
File file = new File(fileUrl);
// 检查文件是否存在
if (file.exists()) {
// 如果文件存在,创建文件系统资源对象
FileSystemResource resource = new FileSystemResource(file);
// 设置HTTP头信息
HttpHeaders headers = new HttpHeaders();
// 设置文件长度
headers.setContentLength(file.length());
// 动态检测文件的MIME类型
try {
String contentType = Files.probeContentType(file.toPath());
if (contentType != null) {
headers.setContentType(MediaType.parseMediaType(contentType));
} else {
headers.setContentType(MediaType.parseMediaType("video/*"));
}
} catch (IOException e) {
headers.setContentType(MediaType.parseMediaType("video/*"));
}
} catch (IOException e) {
headers.setContentType(MediaType.parseMediaType("video/*"));
// 返回包含文件资源的响应实体
return ResponseEntity.ok()
.headers(headers)
.body(resource);
} else {
// 如果文件不存在返回404状态
return ResponseEntity.notFound().build();
}
// 返回包含文件资源的响应实体
return ResponseEntity.ok()
.headers(headers)
.body(resource);
} else {
// 如果文件不存在返回404状态
return ResponseEntity.notFound().build();
}
}
}

Loading…
Cancel
Save