Oracle Apex 有用笔记系列 2 - 文件上传管理

1. 页面设计

页面A有若干region, 当中一个region用于文件列表管理(包含显示,下载。删除)。如图A。

在页面A有一button,点击它会调用页面B,页面B负责文件上传。如图B。

图A

图B

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,

‘<a href="javascript:$s(‘‘P530_DELETE_FILE‘‘, ‘‘‘ || F.FILE_ID || ‘‘‘);">Delete</a>‘ 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的全部文件上传功能都会发到这个表,笔者觉得这样文件管理会有些混乱。倾向建立自己的数据库表来管理。

时间: 2024-10-16 08:06:56

Oracle Apex 有用笔记系列 2 - 文件上传管理的相关文章

Oracle Apex 实用笔记系列 2 - 文件上传管理

1. 页面设计 页面A有若干region, 其中一个region用于文件列表管理(包括显示,下载,删除),如图A.在页面A有一button,点击它会调用页面B,页面B负责文件上传,如图B. 图A 图B 2. 数据库表设计 File FILE_ID           Number, FILE_DESC    Varchar2(256), CONTENT  Blob, mime_type varchar2(256), char_set     varchar2(256), last_update

Oracle Apex 有用笔记系列 6 - 可编辑交互报告 Editable Interactive Report

据笔者所知.Apex 4.x 是没有提供可编辑交互报告组件的.这就须要我们手动实现. 事实上这也并非非常复杂,仅仅须要简单几步. 1. 依据向导建立一个interactive report.查询语句能够例如以下. select apex_item.hidden(1,e.id) || e.name as staff, apex_item.select_list_from_lov(p_idx=>2,p_value=>e.department_id,p_lov=>'lov_department

JS组件系列——Bootstrap文件上传组件:bootstrap fileinput

原文:JS组件系列--Bootstrap文件上传组件:bootstrap fileinput 前言:之前的三篇介绍了下bootstrap table的一些常见用法,发现博主对这种扁平化的风格有点着迷了.前两天做一个excel导入的功能,前端使用原始的input type='file'这种标签,效果不忍直视,于是博主下定决心要找一个好看的上传组件换掉它.既然bootstrap开源,那么社区肯定有很多关于它的组件,肯定也有这种常见的上传组件吧.经过一番查找,功夫不负有心人,还是被博主找到了这个组件:

PKPJIB七牛文件上传管理

圭拉镗夯後 PKPJIB七牛文件上传管理

笔记:Struts2 文件上传和下载

为了上传文件必须将表单的method设置为POST,将 enctype 设置为 muiltipart/form-data,只有设置为这种情况下,浏览器才会把用户选择文件的二进制数据发送给服务器. 上传解析器配置 Struts2 没有提供自己的请求解析器,struts2 需要调用其他上传框架来解析二进制数据,struts2 默认使用 jakarta 的 Common-FileUpload 的文件上传框架,需要在 Web 应用的 lib 中增加 commons-io-2.2.jar 和 common

struts2学习笔记之十:文件上传

Struts2的上传 1.Struts2默认采用了apache commons-fileupload 2.Struts2支持三种类型的上传组件 3.需要引入commons-fileupload相关依赖包 * commons-io-1.3.2.jar * commons-fileupload-1.2.1.jar 4.表单中需要采用POST提交方式,编码类型需要使用:multipart/form-data 5.Struts2的Action 取得文件名称->>规则:输入域的名称+固定字符串FileN

笔记:JDBC文件上传&amp;下载

一.上传下载实现原理 文件的上传下载实现原理,如图: 上传原理: 1.客户端浏览器通过文件浏览框,选择需要上传的文件内容(其中包括文件路径和文件内容). 2.客户端浏览器通过上传按钮,将本地文件上传到浏览器. 3.服务器通过程序接收本地文件内容,并将其保存在服务器的磁盘中. 下载实现流程: 1.客户端浏览器通过点击下载按钮,将服务器保存的文件下载到本地磁盘. 2.服务器端通过程序将服务器文件响应给客户端. 二.文件的上传: * 分析实现步骤: * 客户端浏览器通过文件域选择本地要上传的文件. *

iOS核心笔记——网络编程-文件上传

1.文件上传: ?重要:当用户想向服务器传送客户端本地文件时,此时,需要使用POST请求方式.NSURLSessionUploadTask文件上传任务将文件传递至服务器. 1-1.技术点: ?重要:①设置请求头信息,告诉服务器本次网络请求是在向服务器传送文件:②拼接要上传的文件的数据,拼接过程中一定要严格按照文件上传格式进行,否则,文件上传将会失败. 1-2.文件上传格式: 1.设置请求头信息: ?重要:设置请求头,告诉服务器这是一次文件上传操作. 2.设置文件参数: ?重要:设置请求体,将文件

Spring MVC笔记(七) springMVC文件上传

创建springMVC工程 SpringMVCFileUpload,导入springMVC相关jar以及commons-io.jar.commons-fileupload.jar: 创建springMVC默认配置文件 SpringMVCFileUpload-servlet.xml: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework