サポート > リポジトリ > 応用例 > URL を使ってファイル共有を行う

ファイル型の代わりに URL 型を使ってファイル共有を行うこともできます。この方法によりファイルサーバのファイルにアクセスすることができます。

  1. モデル項目の型を「URL 型」で定義します。
  2. (共有したい)ファイルを、ファイルサーバのフォルダに格納してください。
  3. データ登録時には、ファイルサーバに配置した共有ファイルまでの「Windowsネットワークパス」を URL 形式で記述します。
例えば、Windowsネットワークパス表記が「\\server001\fileshare\catalog001.doc」の場合、 URL項目に「file:////server001\fileshare\catalog001.doc」と登録します。

ブラウザの対応

各ブラウザの表記法は以下の通りです。

ブラウザ 表記法
Internet Explorer file:////server001\fileshare\catalog001.doc
※FireFox 形式, Opera 形式も表示可能。
FireFox file://///server001/fileshare/catalog001.doc
Opera file://server001/fileshare/catalog001.doc
Google Chrome (利用不可)

この方法により Web ブラウザに共有ファイルへのリンクが表示されます。このリンクをクリックすると共有ファイルが開きます。 共有ファイルの編集内容はファイルサーバに保存されます。共有ファイルをWagbyアプリケーションに再登録する必要はありません。

Google Chrome では本機能はご利用いただけません。セキュリティの観点から、共有ファイルへのリンク機能は使えないようになっているようです。こちらのブログに詳細な情報があります。

URLは日本語のフォルダ名にも対応しています。

この方法はクライアント PC からファイルサーバへ直接アクセスできることが前提です。すなわち、イントラネット限定となります。

  • ファイルにアクセスできない場合は、お使いの Web ブラウザに合わせてアドレスバー部の表記を手動で書き換えてください。(例:「file:////server001/fileshare/catalog001.doc」を Opera で表示する場合は「file://server001/fileshare/catalog001.doc」と変更します。)
  • このようなアドレスバー部の書き換えを回避するためには、利用者が使用する Web ブラウザを統一することを推奨します。
  • MS11-057 KB2559049 更新後 file://プロトコルでリンクしている共有ファイルが開けない」という現象が報告されています。Windows Update で当該の修正パッチを適用すると、共有ファイルが開けなくなるようです。上記サイトの改善策にありますとおり、Wagby が稼働しているサーバを信頼済みのサイトに追加してください。

ここでは次の要件を実現する方法を紹介します。

  • URL型を使ってファイルサーバへのパス(ファイルの実体)を登録する。
  • 詳細表示画面では「ファイル名」のみを表示させる。
  • ファイル名をクリックすると、ファイルサーバ上のファイルへアクセスできるようにする。
図1 実現イメージ

実行例

図2に新規登録画面を示します。「ファイル」という項目名ですが、実際にはURLを入力します。初期値を file:(サーバ名) としています。

図2 新規登録画面

図3はファイルサーバへのパスを入力した例です。日本語ファイル名も使えます。

図3 ファイルサーバへのパスを入力

登録後はファイル名のみが表示されます。実際には画面左下に表示されるリンクとなります。(図4)

図4 詳細表示画面

モデル定義

図2,3,4における「ファイル」項目は、実際には入力用、一時計算用、出力用の3つの項目で構成されます。

項目名(日本語) 項目名(英語) 項目の型 隠し(入力) 隠し(出力)
ファイル(入力用) urlitem 文字列 - URL
FINDTAIL(隠し) urlitem_FINDTAIL 文字列
ファイル(出力用) urlitem_output 文字列 - URL
図5 モデル定義

ファイル(入力用)項目

新規登録・更新画面で用いられる項目として定義します。登録画面表示時の初期値を図6のように設定します。ここでは(仮の)サーバ名も含めた例です。

図6 初期値をhttpではなくfileとする

詳細画面では使わないため、隠し項目とします。

図7 出力制御>詳細画面での隠し設定

(新規登録・更新画面での)画面表示上の項目名を「ファイル」とします。

図8 表示用ラベル名の設定

FINDTAIL(隠し)項目

関数によって入力された項目のファイル名部分のみを抽出します。

IF(
  NOT(ISBLANK(${urlitem})),
  MID(${urlitem},FINDTAIL("\\",${urlitem})+1),
  ""
)

また、値をデータベースに保存する必要はないとします。

図9 計算式とデータベース保存解除の設定

入力および出力のそれぞれで隠し項目とします。(図10,図11)

図10 入力制御>全画面で隠し項目指定
図11 出力制御>隠し項目指定

ファイル(出力用)項目

リンク先そのものは「ファイル(入力用)」を使いますが、リンクの表示用項目は「FINDTAIL(隠し)項目」で求めたファイル名部分を使います。この項目もデータベースへの保存は不要です。(図12)

図12 出力項目の詳細設定

入力時には隠し項目とします。(図13)

図13 入力制御>全画面で隠し項目指定

(詳細画面での)画面表示上の項目名を「ファイル」とします。(図14)
図8と図14の設定により、実際には異なる項目ですが利用者からは一つの「ファイル」という項目として扱われます。

図14 表示用ラベル名の設定