反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

文件上传至数据库并下载

  • 文档创建者:文档助手1
  • 历史版本:34
  • 最近更新:Carly 于 2022-10-12
  • 1. 概述

    1.1 应用场景

    希望直接将 txt、Excel 等小型文件保存在数据库中,并且在报表中将这些文件下载下来。

    1.2 实现思路

    上传:使用「文件控件」上传文件,设置好填报属性,以二进制流保存至数据库字段中(字段类型必须是可以存二进制数据的)

    每种数据库可以存文件的字段类型是不同的,以下列出常用数据库保存二进制数据的字段类型:

    数据库  用于保存二进制数据的字段类型  
      Sql Sever image
      Oracle blob
      MySQL longblob
      Access OLE对象

    下载:将二进制数据列拖入模板单元格,设置单元格属性的其他>显示内容用下载链接显示二进制内容,就可以实现下载。

    注1:本文档适用于小文件的上传下载,文件过大会占用过多的数据库表空间,建议使用上传下载文件插件:上传下载文件插件

    注2:该方案不支持移动端。

    2. 示例

    以下我们通过上传一个 txt 文件至 MySQL 数据库中并下载为例来说明实现过程。

     注:帆软自带的FRDemo数据库为Sqlite 数据库,不支持下载文件。

    2.1 数据准备

    1)准备一个 txt 文件,如FR使用说明 .txt

    2)数据库中创建了一张数据库表 test,包含字段(filename[varchar]、file[Blob])。如图所示:

    1601185910302308.png

    3)设计好表之后建立报表软件与该数据库的连接,详情参 照JDBC连接数据库

    2.2 上传

    1)A2单元格插入公式filename(B2)。B2单元格添加文件控件

    注:此处也可以不用公式获取文件名,直接在单元格手写文件名,但是一定要将文件名写完整,文件后缀不能丢。后面下载文件时会用到这个文件名,如果不完整下载下来的文件可能是一个无效的乱码文件。

    2020-09-25_11-41-07.png

    2)如果有插入行需求,那么需要选中 A2 单元格,设置「单元格属性>其他>插入行策略」为原值,否则插入的行的公式会失效。

    3)在报表填报属性中添加内置SQL,绑定列和值,如下图所示:

    2020-09-27_17-06-17.png

    4)保存模板,点击填报预览。使用B2单元格的控件,选择本地文件即可上传文件,如下图所示:

    2020-09-25_13-04-35.gif

    5)上传成功后点击提交,即可在数据库中看到数据。如图所示:

    2020-09-27_14-28-13.png

    2.3 下载

    重新设计模板,添加数据库查询 ds1,SQL 语句为select * from test,将保存的数据查询出来

    将字段拖入到单元格中,并设置文件字段所在单元格的其他>显示内容用下载链接显示二进制内容,并设置下载文件名」为=A2如下图所示:

    注:下载文件名处为必填项,不填会下载 txt 或者 zip 包之类的乱码文件下来。

    1601188725297071.png

    222保存模板点击填报预览,会看到文件字段会以超链形式展示,点击超链就可以下载了

    image.png

    3. 模板下载

    点击下载模板:上传到数据库并下载.cpt

    附件列表


    主题: 填报应用
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526