package com.miniframe.mdo.controller; import com.miniframe.core.ext.UtilTools; import com.miniframe.mdo.service.FileService; import com.miniframe.mdo.service.factory.FileProcessorFactory; import com.miniframe.mdo.service.processor.FileProcessor; import com.miniframe.mdo.utils.FileUtils; import com.miniframe.model.mdo.MdoProFfd; import com.miniframe.model.mdo.dao.MdoProFfdMapper; import com.miniframe.model.system.SysFile; import com.miniframe.model.system.dao.SysFileMapper; import com.miniframe.tools.XIFileUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ResourceUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.io.File; import java.util.HashMap; import java.util.Map; @RestController public class GeoInfoExtractController { @Autowired private FileProcessorFactory fileProcessorFactory; @RequestMapping("/getXyz/{fid}") public Map getXyz(@PathVariable("fid") String fid) throws Exception { Map result = new HashMap<>(); SysFileMapper sysFileDAO = UtilTools.getBean(SysFileMapper.class); SysFile sysFile = sysFileDAO.selectByPrimaryKey(fid); if(sysFile!=null){ String filepath=XIFileUtils.getRootPathStr()+"/"+sysFile.getFilepath(); File file = new File(filepath); // 获取文件后缀 String fileExtension = FileUtils.getFileExtension(file.getName()); // 根据后缀获取对应的处理器 FileProcessor processor = fileProcessorFactory.getProcessor(fileExtension); if (processor == null) { throw new UnsupportedOperationException("Unsupported file type: " + fileExtension); } Map content = processor.processFile(file.getAbsolutePath()); // 将文件内容和数据集类型放入结果中 result.put("data", content); } return result; } }