サポート > リポジトリ > モデル項目 > 文字列 - ファイル

ファイル型を用いると、画像やドキュメントを扱うことができるようになります。

ファイル項目を指定すると図1のような入力欄が用意されます。

図1 ファイル項目の入力欄

「ファイルを選択」ボタンへファイルをドラッグ&ドロップして登録することができます。

図2 画像をドラッグ&ドロップした

詳細表示画面では図3のようにイメージが表示されます。

図3 画像を登録した

WordやExcelといった非画像ファイルを登録することもできます。詳細表示画面では図4のようにアイコンが表示されます。

図4 Word文書を登録した
アイコンをクリックすると、そのファイルをダウンロードすることができます。

定義方法

文字列型項目の型詳細設定で「ファイル型」を選択します。

図5 ファイル型の指定

ファイル名の検索

「ファイル名」型の項目を検索条件とした場合、ファイル名が検索対象となります。文字列型として扱われるため部分一致、前方一致といった検索方法を指定することもできます。

ファイルの内容を検索する

Word,Excel,PowerPoint,PDFといったファイルの内容を検索することもできます。 詳細は"全文検索"をお読みください。

繰り返しコンテナ内のファイル項目は、複数ファイルを一括でドラッグ&ドロップして登録することができます。ボタン名が「複数ファイルを選択」となっています。

図6 複数ファイルを選択するボタンが用意される

2つのファイルをドラッグ&ドロップした状態です。

図7 2つのファイルをドラッグ&ドロップした

保存ボタンを押下すると、繰り返しコンテナ部分に「2レコード」が登録されます。つまり、1ファイル毎に1レコードとなって登録されます。

図8 1ファイル毎に1レコードとなって登録された

Wagbyのファイル型は、次のような動作になります。

基本

ドラッグ&ドロップの動作

ブラウザによって挙動が異なります。

ブラウザ 複数ファイルアップロード ドラッグ&ドロップ操作 バッググラウンドアップロード
Google Chrome
Firefox
IE 11
Edge -

アップロードしたファイルの実体は upload_dir フォルダに格納されます。ファイル名は内部で機械的に変更され、拡張子は ".tmp"となります。

「画面 > その他 > ファイル名型項目の制御」内の「サーバに保存される実ファイル名」を指定することで、このルールを次の3種類から選択することができます。

図9 ファイル保存の設定
(空白時)
ファイル名は機械的に付与されます。拡張子は .tmp となります。(標準)
ファイル名はユニーク、拡張子は維持
ファイル名は機械的に付与されますが、拡張子はアップロードしたファイルを踏襲します。
オリジナルファイル名をそのまま使う
ファイル名、拡張子ともアップロードしたファイルと同じものを使います。

ファイルの削除処理を行なった場合、データベースからファイル名の情報は削除されますが、ファイルの実体は残っています。ファイル名にオリジナルファイル名をそのまま使う設定を行っていた場合、同名のファイルをアップロードすることで上書きされます。

ファイルの実体を削除する方法を別途、用意しています。

詳細表示画面と一覧表示画面でそれぞれ、画像の幅と高さを指定することができます。(図10,図11)

図10 詳細表示画面の画像サイズを幅32ピクセルとした
図11 一覧表示画面の画像サイズを幅32ピクセルとした

定義方法

モデル項目詳細定義の出力制御タブを選択します。詳細画面と一覧画面のタブにある「画像のサイズ」を指定します。単位はピクセルです。幅と高さの両方を指定できますが、一方を指定した場合、もう一方は比率を維持して自動調整されます。

図12 詳細画面の画像サイズ幅を指定する
図13 一覧画面の画像サイズ幅を指定する

ファイル名を非表示にすることができます。

図14 ファイル名を非表示にする

定義方法

モデル項目詳細定義の出力制御タブを選択します。詳細画面と一覧画面のタブにある「ファイル名(URL)を表示する」のチェックをはずします。(標準ではチェックされています。)

図15 ファイル名を表示する、のチェックをはずす

ファイルサイズを指定する

アップロードするファイルの最小サイズおよび最大サイズを指定することができます。単位は「バイト」です。

図19 ファイルサイズを1メガバイトから100メガバイトの範囲とする

指定サイズに満たない、または指定サイズを超えた場合は図20のようなエラーメッセージが表示されます。

図20 サイズエラー
サイズを指定する場合、"K" や "M" での指定も行えます。(大文字小文字は区別しません。) 1Kは1024バイト、1Mは1024Kバイトです。
サイズ指定の数値は、整数型のみ使用できます。小数点は使用できません。

ファイル拡張子を指定する

アップロードするファイルの拡張子を指定することができます。複数個の場合はコンマ「,」で区切ります。

図21 ファイル拡張子が png と jpg のみを許容する

許容されるファイル拡張子でない場合、図22のようなエラーメッセージが表示されます。

図22 拡張子エラー
上記例では PNG と JPG も許容されます。大文字小文字は区別しません。

物理ファイルの保存先をモデル毎に指定することができます。

ファイル型項目で登録されたファイルをクリックしてダウンロードしたとき、ログが出力されます。

2016-xx-xx 00:01:02 [INFO wagbyDownload2 _jspService] (admin) Download test.xls
  • 画像ファイルの場合、ログは出力されません。(ファイル拡張子が jpg/jpeg/png/gif/bmp の場合、画像ファイルと解釈します。)
  • ファイルをクリックすると、ダウンロードを行うかどうかを確認するためのダイアログが表示されることがあります。その時点でログは出力されています。そのため(ダウンロードを)キャンセルしても、ログ上ではダウンロードした、と記録されます。
  • ダウンロードではなく、指定したアプリケーションで開いた場合でも、ログ上ではダウンロードした、と記録されます。

MIME タイプのタイプ名が text の場合(テキストファイルやHTMLファイルなど)、文字エンコーディングは "utf-8" が標準となります。

「環境 > アプリケーション > 初期パラメータ > ダウンロードファイルの文字エンコーディング」を指定して、標準の文字エンコーディングを変更することもできます。これはプロジェクト全体で統一されます。

図23 ダウンロードファイルの文字エンコーディング

ファイル型項目では、Webフォームからアップロードされた物理ファイルは OS のフォルダ内に管理されます。Webブラウザ (Wagby アプリケーション) でリンクをクリックするとファイルをダウンロードすることができます。

これはセキュリティ上の懸念はないでしょうか。ファイルの格納場所(フォルダのパス)を第三者に知られてしまうと不正なダウンロードにつながる可能性を心配されるかも知れません。結論からいうと、このようなことが生じないよう、すでに対策済みです。

  • ファイルダウンロードのURLに含まれるパスは一時的なものです。具体的には、ログオンしているユーザのログオン中のみ有効となっています。このため、このURLをコピーして別ユーザが再利用することはできないようになっています。(仮にそのような操作をしても無視されます。)
  • いったんログアウトして再ログオンすると、パスの表記が変わります。
  • このパスは実ファイルのパスを指していません。実ファイルのありかを知ることはできないようになっています。
Wagby Developer Day 2018