ファイル型の詳細
最終更新日: 2021年3月1日
R8 | R9
Wagby でファイル型の項目を定義するとテーブルには二つのカラムが用意されます。
ファイル本体はデータベースに格納されません。upload_dirというフォルダ内にモデルIDのフォルダが用意され、その中に一時ファイル名が付与されて保存されます。
ファイル型項目を作成すると、対応する(データベースの)テーブルには二つの項目が用意されます。例を示します。
モデル product にファイル型項目 photo を用意したとします。このとき、テーブル product が作成されますが、項目は次のように二つ用意されます。
「オリジナルファイル名をそのまま使う」設定時の upload_dir フォルダを図33に示します。アップロード時のファイル名で格納されています。
運用後に「ファイル名にオリジナルファイル名をそのまま使う」ように設定を変更して再ビルドし、アプリケーションを入れ替えた場合は次のようになります。
過去に登録された .tmp ファイル名を、オリジナルファイル名に戻すためのツールを提供しています。
詳細は"ファイル名の扱いをオリジナルファイル名を残す方式に変更する"をお読みください。
ファイルの削除処理を行なった場合、データベースからファイル名の情報は削除されますが、ファイルの実体は残っています。
ファイルの実体を upload_dir フォルダに残す理由は次のとおりです。
残っているファイル(の実体)を定期的に削除するジョブが用意されています。
"サポート > 管理者ガイド(R9) > 参照されていないファイルの削除ジョブ"をお読みください。
データ削除のタイミングでファイルの実体を削除する方法も用意されています。この方法は上述した「ファイルの実体を upload_dir フォルダに残す理由」に該当しない場合にのみ行なってください。
カスタマイズフォルダ customize/resources に myapplication.properties ファイルを用意し、次の行を加えます。
上記設定を追加後、ビルドを行なってください。この設定はアプリケーション全体に適用されます。
一覧更新、アップロード更新、一括更新、メール受信、メール送信でのファイル削除には未対応です。また、カスタマイズコードで Dao/Service を使った場合も未対応です。
自動生成された WEB-INF\classes\savedir.properties.UTF8 ファイルをテキストエディタで開きます。
次のように記載されています。
標準では、起点ディレクトリ (wagbyapp\bin) からの相対パスとなっています。保存先はモデル毎に指定できるようになっています。
ここで、変更したいモデルのみエントリを残して編集します。変更が不要なモデルは、もともとのファイルから記述を削除します。
例えば「顧客」モデルのみ保存先を変更したい場合は、次のようになります。
編集したファイルを customize\resources フォルダに、mysavedir.properties.UTF8 というファイル名で保存します。
カスタマイズした場合は mysavedir.properties として保存してください。接頭語 my の詳細はこちらをお読みください。
savedir.properties ファイルを直接書き換えてカスタマイズフォルダに含めてしまうと、新規モデルを追加したときに、そのモデルのリソース(savedir.XXXXX)が含まれないこととなり、実行時にエラーとなります。
運用途中に mysavedir.properties.UTF8 ファイルを作成した場合、次のルールとなります。
このため、変更前に指定されていたフォルダは消さないようにご注意ください。
"サポート > Wagby Developer Network(R9) > Javaを用いたカスタマイズ > リソースファイル"をお読みください。
ファイル項目のダウンロードに設定されるMIMEタイプはWEB-INF/mime.typesに設定されています。このルールは次の通りです。
クロスサイトスクリプティング脆弱性につながる懸念があったため、原則は許可されたファイル以外の動作はダウンロードに統一しています。
内部の構造
項目名
説明
例
photo
ファイル名が格納されます。
duke3D.jpg
photo_jshfilename
ファイルの存在するパスを示します。起点は wagbyapp/bin となっています。
../../upload_dir/product/__multi1869501174086226700.tmp
オリジナルファイル名をそのまま使う
「オリジナルファイル名をそのまま使う」設定の注意点
運用途中でファイル名の扱いを「オリジナルファイル名を残す」方式に変更する場合
ファイルの実体の扱い
物理的なファイルを定期的に削除する
物理的なファイルを同時に削除する
server.servlet.context-parameters.file_delete_mode=UnsavedFile
制約
保存先フォルダの変更
# ライセンスファイル
savedir.jfclicenseholder=../../upload_dir/jfclicenseholder
# メールテンプレート
savedir.jfcmailtemplate=../../upload_dir/jfcmailtemplate
# 帳票テンプレート
savedir.jfcreporttemplate=../../upload_dir/jfcreporttemplate
# 顧客
savedir.customer=../../upload_dir/customer
# 顧客
savedir.customer=C://Users//YOURNAME//Desktop//newfolder
カスタマイズファイル名の注意点
運用開始後に変更した場合
注意
その他の情報
MIMEタイプ