专题总结 >> 控件示例 >> 文件控件示例 >> 文件上传到指定路径

文件上传到指定路径

顶( )
最后更新日期: 人发表评论 (点击查看)
文件上传,文件上传到指定路径
1. 问题描述
在使用文件上传控件时,希望将文件上传放到某个固定的位置下并且就将上传的文件名提交入库,此时要如何实现呢?
2. 实现思路
通过自定义函数实现文件上传到指定路径,然后通过在按钮的自定义事件(填报自定义事件)中将数据提交入库并调用此自定义函数即可。
3. 实现步骤
3.1 编写自定义函数
Commit3.java源文件代码具体如下:
3.2 编译自定义函数
将编译后的Commit3.class和Commit3$1.class放在FineReport的安装目录WEB-INF下面的classes目录下,由于Commit3.java属于包com.fr.data,因此Commit3.class和Commit3$1.class需要放置在classes\com\fr\data目录下。
3.3 定义模板
按照下图设置表样:
A1单元格的控件类型为文件上传控件,控件名为attach;B1单元格的控件类型为按钮,按钮名字为上传,点击该按钮时,将文件上传;C1单元格的控件类型为文本框,获取上传文件名称,使用公式filename(A1);在D1单元格中输入文件要上传的路径,控件设置为不可见。
3.4 自定义函数调用及入库处理
给B1按钮增加个点击事件,选择提交入库,进行如下图设置:
设置后,点击设置提交事件按钮,然后增加自定义提交事件,点击按钮,选择自定义事件,然后选择com\fr\data\commit3.class,点击增加属性按钮,添加2个属性,名字分别为attach和filePath(与commit3.java中定义的文件路径名相同),值选择分别为公式A1和单元格D1,其效果如下图:
注:由于attach在Commit3.java中定义的是object对象,所以其属性值只能是公式F(x)=A1,不能选择单元格,然后输入A1,而filePath在Commit3.java中定义的是SubmitJobValue,所以其属性值类型只能是单元格,然后选择具体对应的哪个单元格,如上图的形式,不能写公式。
3.5 预览
点击填报预览,点击文件上传控件,选择完文件后,点击上传文件按钮即可将对应的文件上传到指定的目录下了,填报自定义事件的详细介绍请查看填报自定义事件
4. 7.0.4自定义事件与之前版本的兼容性问题
7.0.3以及之前版本,使用自定义事件获取单元格的值作为自定义函数的属性值时,是直接获取单元格的值,可直接调用,如,上述示例中的属性值filePath,获取单元格D1中的值,然后将该值传到自定义函数中。
在7.0.4版本中,使用自定义事件获取单元格的值作为自定义函数的属性值时,获取到的是单元格,需要在自定义函数中将属性值强转换为JobValue,调用getValue()方法返回实际值。
 
 
 
 
   
文明发言,用心评论
 
应用此篇文章,您:
不费力
研究了一会
琢磨了好久
 
查看全部条>>
Copyright©2019 帆软软件有限公司
苏ICP备18065767号-3