通常我们可以看到网上有很多关于开源规则引擎的一些操作指导和介绍,但针对商业规则引擎的介绍比较少,最多也就是大家使用之后一些心得的分享,今天就给大家展示一下旗正规则引擎,关于文件的上传和下载操作方式,后续我们在给大家介绍其他的一些操作解疑。
文件的上传下载都是数据流的输入输出,大致流程都是一样的。
一、文件打包下载
1.文件写入压缩包
stringmainPath="D:\upload\"; 下载路径
stringtmpfileName=jar.zip; 压缩文件名
stringlsml=System.getProperty("java.io.tmpdir")+"\"; 临时目录
stringzipPath=lsml+tmpfileName; 压缩文件下载路径
bytebuffer[]=new byte[1024];
filetmpFile=new file(zipPath)
if(!tmpFile.exists()){
tmpFile.creatNewfile();
} 创建压缩文件
FileOutputStreamfos=new FileOutputStream(tmpFile);
ZipOutputStreamzos=new ZipOutputStream(fos);
File[]file=new File(mainPath+需要下载文件的文件名);
for(i=0;i<file.length;i++){
FileInputStream fis=new FileInputStream(file[i]); 需要下载的文件读入输入流
zos.putNextEntry(newZipEntry(file[i].getName())); 文件写入zip中
zos.setEncoding("GBK");
int x=0;
while((x=fis.read(buffer))!=-1){
zos.write(buff,0,x);
}
zos.closeEntry();
fis.close();
}
zos.close();
fos.close();
2.压缩包下载
File file=newFile(zipPath);
if(file.exists()){
InputStream ins=new InputStream(zipPah);
BuffInputStreambis=new BuffInputStream(ins);
OutputStreamouts=response.OutputStream();
BuffOutputStreambos=new BuffOutputStream(outs);
int y=0;
byte[] buffer= new byte[1024];
while((y=bis.read(buffer)!=-1){
bos.write(buffer,0,y);
}
bos.flush();
ins.close();
bis.close();
outs.close();
bos.close();
}
将以上流程按照设计的需求,写入到相应规则就可以了。
二、文件上传
对于文件上传,flagleader规则引擎中对于的jsp页面中有上传文件的功能,默认会将文件储存到C:\VisualRules\Tomcat\temp目录下