自定义上传文件至ftp服务器

编辑
  • 文档创建者:文档助手1
  • 浏览次数:5309次
  • 编辑次数:13次
  • 最近更新:Kevin-s 于 2019-06-05
  • 1. 描述

    执行完定时任务之后,如果不需要判断结果,将导出文件都上传至ftp,则可直接使用 FTP上传附件,但是需要根据执行结果判断是否将该结果文件导出并上传至ftp站点,这是就可以通过自定义附件处理来实现,即定义一个 Java 类文件,在类文件中进行结果判断,符合条件的则上传至 ftp 服务器,下面讲解怎么在 Java 中实现文件上传至 ftp 服务器上,至于结果判断的代码这里将不进行讲述。

    2. 解决方案

    2.1 编写类文件

    编写 Java 类,继承 OutputActionHandler<OutputClass>接口:

    package com.fr.output;
    import com.fr.schedule.base.bean.output.OutputClass;
    import com.fr.schedule.base.bean.output.OutputFtp;
    import com.fr.schedule.base.constant.ScheduleConstants;
    import com.fr.schedule.feature.output.FTPHandler;
    import com.fr.schedule.feature.output.OutputActionHandler;
    import com.fr.stable.Filter;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    public class FTPUpload extends OutputActionHandler<OutputClass> {
        private FTPHandler handler = new FTPHandler();
        @Override
        public void doAction(OutputClass action, Map<String, Object> map) throws Exception {
            OutputFtp ftp = new OutputFtp();
            ftp.setServerAddress("192.168.1.45");
            ftp.setPort(String.valueOf(21));
            ftp.setSavePath("test");
            ftp.setUsername("admin");
            ftp.setPassword("123456");
            action(ftp, map, new Filter<String>() {
                @Override
                public boolean accept(String s) {
                    // TODO: 2018/8/23  过滤
                    return true;
                }
            });
        }
        private void action(OutputFtp ftp, Map<String, Object> map, Filter<String> filter) throws Exception {
            String[] files = (String[]) map.get(ScheduleConstants.OUTPUT_FILES);
            List<String> fileList = new ArrayList<String>();
            for (String file : files) {
                if (filter.accept(file)) {
                    fileList.add(file);
                }
            }
            map.put(ScheduleConstants.OUTPUT_FILES, fileList.toArray(new String[0]));
            handler.doAction(ftp, map);
        }
    }

    编译类文件,将生成的 FTPUpload.class 放在%FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\output文件夹下。

    注: 类文件放的位置只需要与编写类文件里面的 package 位置对应即可。

    注:ftp 的信息根据自己的 ftp 服务器自行填写。

    2.2 定时任务


    操作过程请参照 上一节

    2.3 效果查看



    附件列表


    主题: 决策系统
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]