杜洪波
2026-03-13 df91d64c7ed78205084828ff5bf018d876970b46
Merge branch 'dev' of http://nonxin.cn:8090/r/product/product-server-file/V2.0.0 into dev
已修改3个文件
61 ■■■■■ 文件已修改
src/main/java/com/product/file/config/FileCode.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/product/file/controller/FileManagerController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/product/file/service/FileManagerService.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/product/file/config/FileCode.java
@@ -86,7 +86,7 @@
    CLUSTER_FILE_SYNC_CHECK_FAIL("集群文件同步验证失败", ModuleEnum.FILE.getValue() + "061"),
    FILE_TRANSFER_BYTE_ARRAY_FAIL("文件转化为字节数组失败", ModuleEnum.FILE.getValue() + "062"),
    CLUSTER_FILE_SYNC_ACCEPT_FAIL("集群文件同步方法接收失败", ModuleEnum.FILE.getValue() + "063"),
    CHECK_PREVIEW_FAIL("验证能否在线预览失败", ModuleEnum.FILE.getValue() + "064"),
    ;
    private String text;
src/main/java/com/product/file/controller/FileManagerController.java
@@ -439,4 +439,34 @@
            return error(FileCode.CLUSTER_FILE_SYNC_ACCEPT_FAIL.getValue(), FileCode.CLUSTER_FILE_SYNC_ACCEPT_FAIL.getText() + ":" + BaseUtil.getErrorInfo(e).substring(0, 500));
        }
    }
    /**
     * 集群文件同步方法-接收
     * @return 结果
     */
    @RequestMapping(value = "/check-preview/{version}", method = RequestMethod.POST)
    @ApiVersion(1)
    public String checkPreview(HttpServletRequest request, HttpServletResponse response) {
        try {
            FieldSetEntity fse = null;
            Object bean = request.getAttribute(CoreConst.API_POST_REQUEST_DATA);
            RequestParameterEntity rpe = (RequestParameterEntity) bean;
            if (null != rpe && null != rpe.getFormData()) {
                fse = rpe.getFormData();
            }
            if (fse == null) {
                SpringMVCContextHolder.getSystemLogger().error(FileCode.FORM_NODATA.getValue(), FileCode.FORM_NODATA.getText());
                return this.error(FileCode.FORM_NODATA.getValue(), FileCode.FORM_NODATA.getText());
            }
            return OK(fileManagerService.checkPreview(fse));
        } catch (BaseException e) {
            SpringMVCContextHolder.getSystemLogger().error(e);
            e.printStackTrace();
            return error(e.getCode(), e.getMessage());
        } catch (Exception e) {
            SpringMVCContextHolder.getSystemLogger().error(e);
            e.printStackTrace();
            return error(FileCode.CHECK_PREVIEW_FAIL);
        }
    }
}
src/main/java/com/product/file/service/FileManagerService.java
@@ -266,6 +266,11 @@
            return false;
        }
        // 存放在数据库中的文件,直接判定是否有值
        if (attachmentFse.getValue(CmnConst.FILE_CONTENT) != null) {
            return true;
        }
        //判断文件存放在服务器还是本地
        boolean needDownloadFromServerFlag = "1".equals(attachmentFse.getString(CmnConst.UPLOAD_SIGN));
        String dir = attachmentFse.getString(CmnConst.ATTACHMENT_URL);
@@ -1245,4 +1250,28 @@
        return flag;
    }
    /**
     * 验证是否可以预览
     * @param fse
     * @return
     */
    public Object checkPreview(FieldSetEntity fse) {
        String fileName = fse.getString("file_name");
        boolean allowPreviewFlag = Global.getPropertyToBoolean("file.view.online", "true");
        List<String> canTransferFormatList = Lists.newArrayList(Arrays.asList(Global.getSystemConfig("can.transfer.format", "").split(",")));
        List<String> canDirectPreviewList = Lists.newArrayList(Arrays.asList(Global.getSystemConfig("can.direct.view.online.format", "").split(",")));
        List<String> canPreviewList = Lists.newArrayList();
        canPreviewList.addAll(canTransferFormatList);
        canPreviewList.addAll(canDirectPreviewList);
        if (StringUtils.isEmpty(fileName)) {
            if (allowPreviewFlag) {
                return BaseUtil.collection2String(canPreviewList);
            } else {
                return "";
            }
        } else {
            String tail = fileName.substring(fileName.lastIndexOf(".") + 1);
            return allowPreviewFlag && canPreviewList.contains(tail);
        }
    }
}