如何"静态"在Oracle Apex中指定BLOB下载的文件名?

时间:2014-09-08 10:43:00

标签: oracle oracle-apex

我正在使用类型"文件浏览的页面项目..."在Oracle Apex中。

我可以将文件上传到BLOB数据库列并下载,这很棒。

但是,我在指定下载文件名时遇到问题。默认情况下,它只是被称为"下载"没有任何文件扩展名。

据我所知,我可以指定数据库列来保存文件名和其他元数据(如下所述:Use of BLOB type column in Oracle APEX)。但是,我宁愿避免在数据库中有更多列,因为每行的文件名都是相同的 - 它只是大量的重复数据。

我想要做的是从文件浏览...页面项目中为所有下载指定一个静态文件名。

可以吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:1)

在您的文件所在的表上创建一个视图。此视图将显示相同的行和列,但也会使用静态字符串添加mimetype,filename等的列。像这样:

CREATE VIEW downloads_v AS
SELECT d.col1
,      d.col2
,      ...
,      d.colX
,      'myfile.ext' as filename
,      'Application/Octet-Stream' as mime_type
,      'utf8' as charcater_set
from   downloads d;

然后在此视图上创建顶点报告,而不是原始表。 这样您就可以获得与向表中添加这些列相同的功能,但是您可以避免浪费存储空间。