历史版本11 :二进制文件显示成可下载的链接 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本说明

报表服务器版本
11

1.2 应用场景

FineReport 上传文件是以二进制编码形式保存到数据库表中的。

如果文件是图片,将存文件的字段拖入单元格后,前端预览时会直接显示图片。

但是如果文件是其他类型,将存文件字段拖到单元格后,前端预览时显示的是二进制编码,如下图所示:

222

那么如何让图片和二进制文件在预览时,可以统一显示时成可供下载的链接呢?效果如下图所示:

222

1.3 实现思路

选中文件字段所在单元格,单元格属性的「其他」设置项下。

将「显示内容」设置为「用下载链接显示二进制内容」,如下图所示:

Snag_1a05850f.png

2. 示例编辑

2.1 数据准备

示例并没有使用内置的数据库 FRDemo,因为该数据库不支持二进制编码。

此处使用 MySQL 进行演示,新建普通报表,新建数据集,查询出表 file 中的内容添加到数据集,如下图所示:

Snag_1a1a966e.png

表 file 中有 2 个字段,文件名字段是字符串类型,存放文件的名称;文件字段是 blob 类型,存放的文件的二进制编码,如下图所示:

注1:因为是 SQLite 数据库,存放文件的字段一定要设置成 blob 类型的。

注2:MySQL 和 Oracle 需要将字段设置为 blob 类型,SQL Server 数据库需要设置为 image 类型。

Snag_1a1e048b.png

2.2 设计表格

如下图设计表格,将 2 个字段分别拖入到 A2、B2 单元格中。

2.3 设置显示内容

选中 B2 单元格,将单元格属性「其他」下的显示内容设置为「用下载链接显示二进制内容」,下载文件名填入「=A2」,如下图所示:

注:设置「下载文件名」是为了下载后让文件可以显示出想要的名字,如果不设置,那么下载后就是一个名为 download.zip 的压缩包。

2.4 效果预览

2.4.1 PC 端

保存报表,选择任意一种预览方式,效果如下图所示,可以直接点击链接下载文件。

Snag_1a298de9.png

2.4.2 移动端

App 和 H5 端预览,移动端显示和下载的效果如下图所示:

1611027021473986.gif