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

编辑
文档创建者:文档助手1 (67727 )     浏览次数:2861次     编辑次数:9次     最近更新:susie 于 2017-11-12     

目录:

1. 问题描述编辑

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

2. 解决方案编辑

2.1 编写类文件
编写java类,继承AbstractOutputFileAction接口,通过下面两个方法实现上传附件至ftp的功能:
第一个方法:getFilesToDealWith(File[] files),主要功能是筛选要处理的文件,参数files是传进来的文件,其中根据所选可能包括报表生成的pdf和excel文件。示例中直接返回传进来的文件,没有进行任何操作,用户可根据需要自行修改编辑。
第二个方法:doFileAction(File[] files),主要功能是实现FTP上传附件的功能,需根据实际情况设置FTP服务器的相关参数。
package com.fr.output; import java.io.File; import com.fr.data.dao.CompatiableIDFCMapper; import com.fr.data.dao.ObjectTableMapper; import com.fr.json.JSONException; import com.fr.json.JSONObject; import com.fr.schedule.output.AbstractOutputFileAction; import com.fr.schedule.output.FTPTransmission; import com.fr.schedule.output.OutputFileAction; import com.fr.schedule.output.ftp.DefaultFTPTransmit; public class FTPUpload extends AbstractOutputFileAction { @Override public ObjectTableMapper objectTableMapper2Register() { return null; } @Override public long getId() { return 0; } @Override public File[] getFilesToDealWith(File[] files) { return files; } @Override public void doFileAction(File[] files) { FTPTransmission ftp=new FTPTransmission(); ftp.setServerAddress("192.168.100.100"); ftp.setPort(23); ftp.setSavePath("test"); ftp.setUsername("1"); ftp.setPassword("1"); try { new DefaultFTPTransmit().transmit(files, ftp.getServerAddress(), ftp.getPort(), ftp.getUsername(), ftp.getPassword(), ftp.getSavePath()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public CompatiableIDFCMapper getExtraOutputFileActionForeignKey() { return null; } @Override public boolean isEmailNotification() { // TODO Auto-generated method stub return false; } @Override public OutputFileAction analyzeJSON(JSONObject arg0) { // TODO Auto-generated method stub return null; } @Override public JSONObject createJSONConfig() throws JSONException { // TODO Auto-generated method stub return null; } @Override public String getJsonTag() { // TODO Auto-generated method stub return null; } }
编译类文件,将生成的FTPUpload.class放在%FineReport_home%\WebReport\WEB-INF\classes\com\fr\output文件夹下。
注:类文件放的位置只需要与编写类文件里面的package位置对应即可。
注:ftp的信息根据自己的ftp服务器自行填写。
2.2 定时任务
操作过程请参照上一节
2.3 效果查看

附件列表


主题: 决策系统
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

本文档是否有用?
谢谢! 我们非常感谢您的反馈。
提交反馈: