oracle apex导入图片,OracleApex实用笔记系列2-文件上传管理-Oracle

1. 页面设计

页面A有若干region, 其中一个region用于文件列表管理(包括显示,下载,删除),如图A。在页面A有一button,点击它会调用页面B,页面B负责文件上传,如图B。

图A

518816.php

图BvcD4KPHA+PGltZyBzcmM9″” alt=”\”>

2. 数据库表设计

File

FILE_ID Number,

FILE_DESC Varchar2(256),

CONTENT Blob,

mime_type varchar2(256),

char_set varchar2(256),

last_update date,

FILE_NAME varchar2(256)

3. Apex实现

3.1 在页面A获取上传文件列表

可创建一个classic report region, region source是

select f.FILE_ID,

f.FILE_DESC,

f.FILE_NAME,

dbms_lob.getlength(“FILE_CONTENT”) as FILE_CONTENT,

MIME_TYPE,

CHAR_SET,

LAST_UPDATE,

Delete’ as DELETE_FILE

from FILE f

注意: 由于BLOB不能直接映射成页面元素,所以适用dbms_lob.getlength函数得到blob的大小作为占位符。

在报告属性(Report Attribute)标签,点击FILE_CONTENT进入该cloumn的设置: 1. Number/Date Format选择Blob; 2. Format Mask:Download; 3. Blob Table: FILE 4. Blob Column: FILE_CONTENT 5. Primary Key Column 1: FILE_ID; 6. Mimetype Column: MIME_TYPE; 7. FIlename Column:FILE_NAME; 8. Last Updated Column: LAST_UPDATE; 9. Character Set Column: CHAR_SET; 10. Download Text: Download

3.2 页面B上传文件

使用页面B作为一个单独页面上传的一个原因是Apex无法在一个页面创建多个Form on a Table,换句话说,Apex的一个页面只能创建一个Form on a Table。创建Form on a Table页面的好处是可以由Apex帮助我们管理表格的插入,更新的细节。所以页面B的创建只要跟着Apex创建Form on a Table向导一步一步走就可以了。

在修改FILE_CONTENT对应的item时, display as: 选File Brows 在它的setting标签中, 1. Storage Type:Blob column specified in Item Source attribute; 2. Mimetype Column: MIME_TYPE; 3. FIlename Column:FILE_NAME; 4. Last Updated Column: LAST_UPDATE; 5. Character Set Column: CHAR_SET;

在Storage Type中,另一个选项是Table WWV_FLOW_FILES,这是Apex内置的一个用于文件上传的表。这是Apex老版本的做法,为了向后兼容而保留。如果选择这个选项,不同application的所有文件上传功能都会发到这个表,笔者认为这样文件管理会有些混乱,倾向建立自己的 数据库表来管理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值