2011-07-15 12 views
4

Oracle ApExでファイルのリストを表示し、そのファイルをダウンロードできるレポートを作成しようとしています。Oracle ApExでのファイルへのリンク

ファイルは外部アプリケーションによって作成されており、ファイルの配置場所を完全に制御できます。今はApExイメージディレクトリ(C:\ oracle \ product \ 11.2.0 \ dbhome_1 \ apex \ images)のサブフォルダに作成しています。ただし、ここにリンクしようとすると、空白のページが表示されます。リンクURLとして#WORKSPACE_IMAGES##IMAGE_PREFIX#の値を試しましたが、動作しません。

ApExのflows_files.wwv_flow_file_objects$テーブルにファイルを自動的に追加する方法はありませんが、ApExページを使用する以外は(またはApExワークスペースを使用して静的ファイルとしてアップロードすることはできません)テーブルにレコードを手動で挿入することが可能だと思いますが、これにはさまざまなIDが必要ですが、これは地雷になる可能性があります。

他に誰かがこの問題を抱えていますか?他のウェブサーバ上のファイルへのリンクは、特に文書ルートの下に置かれている場合は、初心者になるでしょう。

答えて

3

ただ、これに答えを提供する場合には、誰もがこの質問時につまずく - 私は、内のファイルを格納することで、それを解決するために管理データベースをBLOB値として返します。その後、ここでの指示に従うことによって、これらのファイルを提供するためにAPEXを設定することができます:http://download.oracle.com/docs/cd/E14373_01/appdev.32/e13363/up_dn_files.htm#CIHHEHCJ

0

#は#は

wwv_flow_file_mgr.get_file?p_security_group_id=123456789&p_fname= 

のような文字列を返すので、ApexのファイルテーブルWWV_FLOW_FILESに保存されたファイルにのみ適用されWORKSPACE_IMAGES。

#IMAGE_PREFIX#は、/i/のような文字列を返します。これはリンクでApex画像フォルダに保存されたファイルをダウンロードするために使用できます。たとえば、私はこのようなリンクを作成することができます。

<a href="#IMAGE_PREFIX#"javascript/apex_4_0.js">Download some JS</a> 

を、私はページを実行し、それをクリックしたとき、私はそのファイルを開いたり、ダウンロードすることができます。

Apexのアップグレード中に上書きされる可能性があるため、自分のファイルをApexのイメージフォルダに保存することはお勧めしません。代わりに、独自の論理ディレクトリを定義することができます。その後、別の場所を指しているアプリケーションサーバー上の/myfiles/、代わりにこのようにすることを参照します。

<a href="/myfiles/picture1.jpg">Download picture 1</a> 
+0

私はそのことを考えていましたが、ドキュメントルートがApExインストールのどこにあるのかわかりません。それがどこにあるのか分かりますか? – Datajam

+0

http://download.oracle.com/docs/cd/E17556_01/doc/install.40/e15513/otn_install.htm#CHDJFIBG –

+0

を参照してくださいありがとうございます。しかし、今私はもっと混乱していると思います。私は、PL/SQLゲートウェイが組み込まれた状態で[ApEx Listener](http://www.oracle.com/technetwork/developer-tools/apex-listener/index.html)を実行しているだけです。 Oracle HTTP Serverはありません。 – Datajam

1

あなたはアペックスリスナーまたはORDS(Oracleの休憩データサービス)を使用している場合のTomcat、ApacheやGlassfishので展開します。あなたがする必要があるのは、まずアプリケーションサーバーのコンテキストルート(イメージフォルダまたは/ i)を特定することです。

Glassfish context root - image

次に、あなたがあなたのApexアプリケーションで参照する必要があるすべての資産をコピーし、その後、「資産」のようなフォルダを作成します。

Apexでは、これらのアセットを'/i/assets/file-name.jpg'のように参照する必要があります。

これはすべて奇妙なことを避けるためのものです。レガシーパス(HTML DB < ---> Apex 4。2)wwv_flow_file_mgr.get_file?p_security_group_id=123456789&p_fname=アプリケーションファイルまたはワークスペースファイルとして静的ファイルをDBに追加した場合。 Apex 5には、この奇妙なパスはありません。代わりに、ファイルへの仮想パス参照があります。

関連する問題