自定义上传文件至磁盘
1. 问题描述
在定时任务完成之后,有时候需要将文件导出至自定义位置,而不是系统默认位置%FR%WebReport\WEB-INF\schedule,这时候就可以通过自定义附件来处理,通过自定义类文件修改文件导出的位置。
2. 示例
导出excel和pdf,并把生成的对应文件保存在指定路径中去,本例中的路径是放在D盘中。
3. 实现步骤
3.1 编写类文件
定义一个OutputExcel类文件,实现AbstractOutputFileAction接口,具体代码如下:
package com.fr.output;
import java.io.*;
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.OutputFileAction;
public class OutputExcel extends AbstractOutputFileAction{
@Override
public File[] getFilesToDealWith(File[] files) {
return files;
}
@Override
public void doFileAction(File[] files) {
// OutputStream out=new BufferedOutputStream(new FileOutputStream(new File(files.)));;
System.out.println(files[0].getName());
for(int i=0;i<files.length;i++){
String name=files[i].getName();
String path="D:/"+name;
BufferedInputStream in=null;
OutputStream out=null;
try {
out=new BufferedOutputStream(new FileOutputStream(new File(path)));
in=new BufferedInputStream(new FileInputStream(files[i]));
byte[] ba=new byte[in.available()];
in.read(ba);
out.write(ba);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(in!=null){
in.close();
}
if(out!=null){
out.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
@Override
public ObjectTableMapper objectTableMapper2Register() {
return null;
}
@Override
public CompatiableIDFCMapper getExtraOutputFileActionForeignKey() {
return null;
}
@Override
public long getId() {
return 0;
}
@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;
}
}
编译类文件,将生成的OutputExcel.class放在%FineReport_home%\WebReport\WEB-INF\classes\com\fr\output文件夹下。
注:类文件放的位置只需要与编写类文件里面的package位置对应即可。
3.2 定时任务
参照定时生成日报配置定时任务,到第三步—本地文件的时候,在 后面勾选excel,word,pdf,则可将定时任务结果导出为excel,word以及pdf格式如下图:
然后到第四步——文件处理的时候,勾选“自定义附件处理”,切换到自定义附件处理标签页,选择上面的class文件,点击提交即可,如下图:
3.3 效果查看
在D盘下面可以查看到不同格式的导出文件,分别为xx.cpr 、xx.xlsx、xx.xls、xx.pdf、xx.doc。如下图:
附件列表
标签:
9.0验证
文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201)