历史版本66 :上传下载文件插件 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

设计器版本  JAR 包
插件版本  
10.02019-06-11V8.1.4

1.2 应用场景

有时候用户需要将文件上传到服务器或者FTP进行保存,并且可以提供文件下载。以前 FineReport 实现此功能需要自定义函数实现,但代码实现会比较麻烦。该插件将此功能封装,安装后可以通过可视化界面操作,方便快捷。

1.3 功能简介

  • 文件上传可上传至「服务器」或「FTP」,同时支持「普通报表」和「决策报表」

  • 文件下载支持「普通报表」,不支持「决策报表」

  • 各类控件的控件「事件」中同步增加「文件上传」功能。

  • 不支持单元格扩展

  • 不支持多文件上传

  • 不支持在集群环境下使用

  • 移动端仅支持文件上传,不支持文件下载

2. 插件介绍编辑

2.1 插件安装

插件下载请点击:上传下载文件插件

设计器插件安装方法参照 设计器插件管理

服务器安装插件方法参照 服务器插件管理

2.2 插件功能

2.2.1 上传至服务器

报表填报属性界面,自定义提交中新增了上传类型选择,可选择「上传至服务器」。

同名文件覆盖:默认不勾选。不勾选时,同名文件会自动重命名;勾选后,同名文件会直接覆盖。

1614847670210710.png

2.2.2 上传至 FTP

报表填报属性界面,自定义提交中新增上传类型选择,可选择「上传至 FTP」。

同名文件覆盖:默认不勾选。不勾选时,同名文件会自动重命名;勾选后,同名文件会直接覆盖。

1614847752799060.png

2.2.3 文件下载

超级链接新增一个选项「文件下载」,可以通过设置超级链接,实现从服务器端下载文件,如下图所示:

4.png

2.3 设置项格式

设置项内容示例
磁盘路径
控件名称、单元格、自定义
  • $a

  • A1

  • "D:/photo"

  • "/data/tomcat/"

文件
控件名称、单元格
  • $a

  • A1

文件名控件名称、单元格、自定义
  • $a

  • A1

  • "test2"


3. 普通报表示例编辑

3.1 报表设计

1)在FineReport设计器中点击「文件>新建普通报表」。

2)选中A1单元格,为 A1 单元格添加「文件控件」,文件类型选择「全部文件」。如下图所示:

3.png

3.2 上传至服务器

1)菜单栏点击「模板>报表填报属性」,添加「自定义提交」,提交类型选择「上传至服务器」,根据实际情况输入磁盘路径、文件、文件名。如下图所示:

1574835368835340.png

具体设置项说明如下表所示:

设置项本次示例说明
磁盘路径"C:/Users/Leo.Tsai/Desktop/Document/"填写服务器磁盘路径
文件A1文件的填报单元格
文件名

LEFT(FILENAME(A1), FIND(".", FILENAME(A1)) - 1)

注:该公式含义:表示 find 函数找到后进行定位,再使用 left 函数提取前面的位数,防止出现多后缀名

文件名

注:可直接输入内容,或者使用单元格内容或者函数

3)保存报表,点击「填报预览」,并上传文件,文件上传成功,保存至设置好的路径下且文件名为 A1 单元格的文件名。如下图所示:

1574826271507574.png

注:请勿一次上传多个文件,否则文件名会叠加,造成使用困扰。

3.3 上传至 FTP

1)菜单栏点击「模板>报表填报属性」,添加「自定义提交」,提交类型选择「上传至 FTP」,点击 FTP 设置,添加一个 FTP 连接。如下图所示:

1574835673588206.png

2)新建一个 FTP 连接,用户需根据实际场景填写连接信息。如下图所示:

1589252675257339.png

3)设置文件信息,如下图所示:

1574836134985019.png

各设置项说明如下表所示:

设置项本次示例说明
上传路径"/FineReport Document"FTP 上传路径
文件A1文件填报的单元格
文件名LEFT(FILENAME(A1), FIND(".", FILENAME(A1)) - 1)文件名
FTP 站点Test本文 3.3 节第二步骤中的 FTP 连接名称

4)保存报表,点击「填报预览」,并上传文件,文件上传成功,FTP 站点下会保存该文件,且文件名为 A1 单元格的文件名。如下图所示:

1574834747508971.png

注:请勿一次上传多个文件!文件名会叠加,造成使用困扰。

3.4 文件下载

以 3.2 中已经设计好的上传到服务器报表为例( FTP 同理设置即可 )。

1)A2 单元格插入公式filename(A1),表示获取 A1 单元格上传的文件名,A2 单元格如下图设置形态属性,设置自定义类型的数据字典。

实际值=$$$

显示值=LEFT(FILENAME(A1), FIND(".", FILENAME(A1)) - 1)

Snag_65844ce.png

2)设计器菜单栏点击「模板>报表填报属性」,如下图新增「内置 SQL 提交」,将 A2 单元格的文件名保存到数据库中,为后期数据的下载做准备(数据库中有一张表,里面 filename 字段用来存储上传的文件的文件名)。如下图所示:

1574853000622600.png

3)选中A2单元格,右边属性面板新增一个「文件下载」类型的「超级链接」,文件下载的具体设置如下图所示:

文件服务:只有一个选项「Default」,同时支持从服务器和 FTP 下载,如果是 FTP,需要在右边设置「FTP设置」连接一个 FTP。

文件路径:要下载的文件的路径,如:插入公式"C:/Users/Leo.Tsai/Desktop/Document/Test.xlsx"

重命名:可以对下载到本地的文件进行重命名,这个是选填项,非必须。

编码类型:匹配自己环境下 FTP 的编码。

Snag_663251b.png

4)保存报表,点击「填报预览」,点击下载超链,即可下载文件,如下图所示:

注:该方法支持移动端。

39FCB2ED-9599-4D14-A4A1-74840E36CC2A.GIF

4. 决策报表示例编辑

4.1 报表设计

1)在FineReport设计器中点击「文件>新建决策报表」。

2)在新建决策报表中拖入两个「文件控件」和两个「按钮控件」。

3)选中「multiFileUploader0」控件,选择文件类型为「jpg,png,gif」,如下图所示:

7.png

4.2 上传至服务器

1)选中「button0」控件,在「事件」Tab 下添加「点击事件」,如下图所示:

8.png

2)选择「文件上传」,类型为「上传至服务器」,根据实际情况填写磁盘路径、文件、文件名。如下图所示:

1589187640743161.png

具体设置项说明如下表所示:

设置项本次示例说明
磁盘路径"D:/photo"文件上传后,存放的磁盘位置
文件$multiFileUploader0「multiFileUploader0」为实现上传文件的文件控件名称
文件名"test1"文件上传后,保存在磁盘中的名称

4.3 上传至 FTP

1)选中「button1」控件,在「事件」Tab 下添加「点击事件」,如下图所示:

10.png

2)选择「文件上传」,类型为「上传至FTP」,点击「FTP设置」,新增「FTP站点」,根据实际情况配置 FTP 信息。如下图所示:

11.png

3)根据实际情况填写磁盘路径、文件、文件名。如下图所示:

1589187684440462.png

具体设置项说明如下表所示:

设置项本次示例说明
上传路径"/wenjian"文件上传后,保存在 FTP 服务器中的位置
文件$multiFileUploader1「multiFileUploader1」为实现上传文件的文件控件名称
文件名"test2"文件上传后,保存在FTP服务器中的名称
FTP站点FTP站点1
本文 4.3 节第二步骤中的 FTP 连接名称

4.4 效果查看

4.4.1 PC 端

上传文件:

9.gif

上传文件后效果:

13.png

4.4.2 移动端

以 App 效果为例。

上传文件:

10.gif

上传文件后效果:

14.png

4. 模板下载编辑

1)普通报表

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\form\上传下载文件.cpt

点击下载模板:上传下载文件 .cpt

2)决策报表

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\form\决策报表实现上传文件.frm

点击下载模板:决策报表实现上传文件.frm