Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何";静态地;为Oracle Apex中的BLOB下载指定文件名?_Oracle_Oracle Apex - Fatal编程技术网

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

如何";静态地;为Oracle Apex中的BLOB下载指定文件名?,oracle,oracle-apex,Oracle,Oracle Apex,我正在Oracle Apex中使用“文件浏览…”类型的页面项 我可以将一个文件上传到BLOB数据库列中,然后下载,这很好 但是,我在指定下载文件名时遇到问题。默认情况下,它只是称为“下载”,没有任何文件扩展名 我知道我可以指定数据库列来保存文件名和其他元数据(如下所述:)。但是,我更希望避免在数据库中有更多的列,因为每一行的文件名都是相同的——这将是大量重复数据 我想做的就是为文件浏览中的所有下载指定一个静态文件名。。。页面项 能做到吗?如果是,如何在文件所在的表上创建视图。此视图将公开相同的行

我正在Oracle Apex中使用“文件浏览…”类型的页面项

我可以将一个文件上传到BLOB数据库列中,然后下载,这很好

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

我知道我可以指定数据库列来保存文件名和其他元数据(如下所述:)。但是,我更希望避免在数据库中有更多的列,因为每一行的文件名都是相同的——这将是大量重复数据

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


能做到吗?如果是,如何在文件所在的表上创建视图。此视图将公开相同的行和列,但也会使用静态字符串添加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;
然后在此视图而不是原始表上创建apex报告。
通过这种方式,您可以获得与将这些列添加到表中相同的功能,但可以避免存储空间浪费。

您到底想做什么?是否更改存储在数据库中的文件名?或者更改稍后在APEX中显示的下载链接的名称?我想更改浏览器实际下载的文件的(默认)名称。我想在APEX 4.1中执行类似的操作,但得出的结论是,唯一的方法是在页面加载后执行一点jQuery欺骗。就我而言,我觉得不值得这么麻烦。不幸的是,我不是发问者;)