當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

自定義上傳文件至 FTP 服務器

1. 概述

1.1 版本

報表服務器版本
10.0

1.2 問題描述

定時任務執行後,根據執行結果判斷是否将該結果文件導出并上傳到 ftp 站點,應該怎麽實現呢?

1.3 解決思路

  • 定義一個 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 定時任務

注:「調度對象」步驟中,該方法不支持在「調度結果」右側勾選除通用結果外,根據默認用戶組内的用戶單獨生成結果

1)定時調度任務步驟請參考 自定義上傳文件至磁盤 中的 2.2.1 章、2.2.2 章、2.2.3 章、2.2.4 章。

2)點擊下一步,勾選自定義附件處理,選擇本文 2.1 章節中的FTPUpload.class文件,點擊保存。如下圖所示:

1583465752606769.png

2.3 效果查看

如下圖所示:

1583473090765144.png

附件列表


主題: 原簡體文檔
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

9s後關閉

反饋已提交

網絡繁忙