自定义上传文件至磁盘

编辑
文档创建者:文档助手1 (67727 )     浏览次数:4988次     编辑次数:20次     最近更新:jiangsr 于 2018-09-12     

目录:

1. 描述编辑

在定时任务完成之后,有时候需要将文件导出至自定义位置,而不是系统默认位置%FR%WebReport\WEB-INF\schedule,这时候就可以通过自定义附件来处理,通过自定义类文件修改文件导出的位置。

2. 示例编辑

导出excel和pdf,并把生成的对应文件保存在指定路径中去,本例中的路径是放在D盘中。

3. 实现步骤编辑

3.1 编写类文件
定义一个OutputExcel类文件,实现OutputActionHandler<OutputClass>接口,具体代码如下:
package com.fr.output; import com.fr.schedule.base.bean.output.OutputClass; import com.fr.schedule.base.constant.ScheduleConstants; import com.fr.schedule.feature.output.OutputActionHandler; import com.fr.stable.ArrayUtils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Map; public class OutputExcel extends OutputActionHandler<OutputClass> { @Override public void doAction(OutputClass action, Map<String, Object> map) throws Exception { String[] files = (String[]) map.get(ScheduleConstants.OUTPUT_FILES); if (ArrayUtils.isNotEmpty(files)) { for (String path : files) { output(path); } } } private void output(String path) { File file = new File(path); String newPath = "C:/test/" + file.getName(); BufferedInputStream in = null; OutputStream out = null; try { out = new BufferedOutputStream(new FileOutputStream(new File(newPath))); in = new BufferedInputStream(new FileInputStream(file)); byte[] ba = new byte[in.available()]; in.read(ba); out.write(ba); } catch (Exception e) { e.printStackTrace(); } finally { try { if (in != null) { in.close(); } if (out != null) { out.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
编译类文件,将生成的OutputExcel.class放在%FineReport_home%\webapps\webroot\WEB-INF\classes\com\fr\output文件夹下。
注:类文件放的位置只需要与编写类文件里面的package位置对应即可。
3.2 定时任务
参照定时生成日报配置定时任务,到第三步—本地文件的时候,在附件存档类型后面勾选excel,word,pdf,则可将定时任务结果导出为excel,word以及pdf格式如下图:
222
然后到第四步——文件处理的时候,勾选“自定义附件处理”,切换到自定义附件处理标签页,选择上面的class文件,点击提交即可,如下图:
222
3.3 效果查看
在C盘test文件夹下面可以查看到不同格式的导出文件,如下图:
222


附件列表


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

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

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