public class FileUploadTag extends CommonTagSupport
クライアントのファイルをサーバーにアップロードするタグです。
アップロード後の属性は、DBTableModel に格納することにより、通常のデータと
同様の取り出し方が可能です。
また、通常のファイルアップロード時の、form で使用する、enctype="multipart/form-data"
を指定した場合の、他のリクエスト情報も、{@XXXX} 変数で取り出すことが可能です。
この upload タグでは、アップロード後に、指定のファイル名に変更する機能があります。
file 登録ダイアログで指定した name に、"_NEW" という名称を付けたリクエスト値を
ファイルのアップロードと同時に送信することで、この名前にファイルを付け替えます。
また、アップロード後のファイル名は、name 指定の名称で、取り出せます。
クライアントから登録したオリジナルのファイル名は、name に、"_ORG" という名称
で取り出すことが可能です。
通常では、これらのパラメータを、RequestAttribute 変数にセットしますので、{@XXXX}で
取り出すことが可能になります。さらに、"KEY","VALUE","ISFILE" のカラムを持った、
DBTableModel にセットします。
新機能として、columns を指定する事で、columns のカラムを持つ DBTableModel にセットします。
その場合は、カラム名_01 ~ カラム名_99 のように、アンダーバーで列データとなるキーを定義してください。
アンダーバーがない場合は、カラムだけ作成されます。カラム名と同じリクエストがあれば、
すべてのレコードに同じ値がセットされます。
新ファイル名に拡張子が設定されていない場合は、オリジナルファイル名の拡張子をセットします。
HTML5 の type="file" 時の multiple 属性(アップロードファイルの複数選択機能)に対応します。(5.7.1.1 (2013/12/13))
その場合は、新しいファイル名への変更はできません。オリジナルのファイル名でアップロードされます
5.7.1.2 (2013/12/20) zip 対応
filename 属性に、".zip" の拡張子のファイル名を指定した場合は、アップロードされた一連のファイルを
ZIP圧縮します。これは、アップロード後の処理になります。
ZIP圧縮のオリジナルファイルは、そのまま残ります。
なお、ZIPファイルは、useBackup属性を true に設定しても、無関係に、上書きされます。
5.7.4.3 (2014/03/28) filename 属性のリクエスト変数対応
filename 属性のみ、{@XXXX} のリクエスト変数が使えるようにします。
他のパラメータでは使えません。
これは、multipart/form-data のリクエストでは、パートの分解処理をしないと、リクエスト変数が
拾えない為、リクエスト変数は、この、upload タグ以降でのみ利用可能でした。
zip対応と関連付けて、filename 属性のみ、利用できるように、MultipartRequest 側の処理に組み込みます。
5.7.6.3 (2014/05/23) アップロードファイルのCSVセット
個々に指定したアップロードファイル名は、XXX_NEW や XXX_ORG で取得できますが、
HTML5 の multiple 属性使用時や、アップロードされたファイルを一連で処理したい場合に
ファイル名を、CSV形式で取り出せるようにします。
キーは、共通で、UPLOAD_FILES とします。
6.0.2.4 (2014/10/17)
① name + _NEW と同じ考え方で、_PFX(接頭辞) , _SFX(接尾辞) 機能を追加します。
② 上記機能は、_NEW との併用可能。_NEW がない場合は、オリジナル(アップロードされた元のファイル名)に付与
③ useBackup="rename" で、すでに同名のファイルが存在した場合に、"_001" のような文字列を追加したファイルにリネームします。
Windowsの " - コピー (2)" に近いですが、桁数を抑えるのと、useBackup="true" と異なり、過去の同一ファイル名は
そのまま、有効になります。同一ファイルが同一フォルダに存在する場合のみ連番が付与されます。
④ name + _NEW の指定に、フォルダを含めることが可能。ただし、接続文字列は、"/" とする。
同時にアップロードを行う場合に、個別にフォルダを振り分けたり、_PFX(接頭辞) に、フォルダを指定
することも可能です。
⑤ 最大転送サイズ(Byte)を 10M → 30M に変更
5.9.25.0 (2017/10/06)
クラウド上のPaaSでオブジェクトストレージを利用する際は以下のシステムリソースを設定してください。
CLOUD_STORAGE,CLOUD_STORAGE_CONTAINER
plugin/cloud内のクラスを利用してファイルアップロード(FileUploadタグ)、ダウンロード(FileDownloadサーブレット)をAPI経由で行います。
プラグインが利用するjarファイルの配置は必要です。 ●形式:<og:upload fileURL="…" maxPostSize="…" />
●body:なし
●Tag定義:
<og:upload
fileURL 【TAG】ファイルをアップロードするディレクトリを指定します (初期値:FILE_URL[=filetemp/])
filename 【TAG】(通常は使いません)ファイルを作成するときのファイル名をセットします(初期値:null)
maxPostSize 【TAG】最大転送サイズ(Byte)を指定します(初期値:31457280=30M) 0,またはマイナスで無制限です。
scope 【TAG】キャッシュする場合のスコープ[request/page/session/application]を指定します(初期値:session)
tableId 【TAG】(通常は使いません)sessionから所得する DBTableModelオブジェクトの ID
columns 【TAG】DBTableModel作成時に、指定のカラムの"_01"~"_99"の添え字をレコードとして作成します。
useBackup 【TAG】すでに同名のファイルが存在した場合に、バックアップ処理するかどうか[true/false/rename]を指定します(初期値:null=false)
useBackup="rename" で、"_001" のような文字列を追加します。
language 【TAG】タグ内部で使用する言語コード[ja/en/zh/…]を指定します
debug 【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
/>
●使用例 :
【query.jsp】
<form method="POST" action="result.jsp" enctype="multipart/form-data" target="RESULT">
<table summary="layout" >
<tr><og:input type="text" name="submitter" value="{@USER.JNAME}" size="20" lbl="MSG0014" /></tr>
<tr>
<og:input type="file" name="file_01" size="30" lbl="MSG0015" />
<og:input name="file_01_NEW" size="10" lbl="FILENAME" />
</tr><tr>
<og:input type="file" name="file_02" size="30" lbl="MSG0015" />
<og:input name="file_02_NEW" size="10" lbl="FILENAME" />
</tr><tr>
<og:input type="file" name="file_03" size="30" lbl="MSG0015" />
<og:input name="file_03_NEW" size="10" lbl="FILENAME" />
</tr><tr>
<og:column name="writable" value="false" />
</tr>
</table>
【result.jsp】
<og:upload
fileURL = "{@USER.ID}"
/>
<br />
<og:message lbl="MSG0003" comment="ファイルの登録が完了しました。" />
<og:view
command = "NEW"
viewFormType = "HTMLTable"
writable = "{@writable}"
/>
<table>
<tr><og:input name="submitter" value="{@submitter}" /></tr>
<tr><og:input name="writable" value="{@writable}" /></tr>
<tr><og:input name="directory" value="{@directory}" /></tr>
<tr><og:input name="file_01" value="{@file_01}" /></tr>
<tr><og:input name="file_01_NEW" value="{@file_01_NEW}" /></tr>
<tr><og:input name="file_01_ORG" value="{@file_01_ORG}" /></tr>
<tr><og:input name="file_02" value="{@file_02}" /></tr>
<tr><og:input name="file_02_NEW" value="{@file_02_NEW}" /></tr>
<tr><og:input name="file_02_ORG" value="{@file_02_ORG}" /></tr>
<tr><og:input name="file_03" value="{@file_03}" /></tr>
<tr><og:input name="file_03_NEW" value="{@file_03_NEW}" /></tr>
<tr><og:input name="file_03_ORG" value="{@file_03_ORG}" /></tr>
</table>
【result.jsp】
<og:upload
fileURL = "{@USER.ID}"
columns = "submitter,file"
/>
<br />
<og:message lbl="MSG0003" comment="ファイルの登録が完了しました。" />
<og:view
command = "NEW"
viewFormType = "HTMLTable"
writable = "{@writable}"
/>| 修飾子とタイプ | フィールドと説明 |
|---|---|
static java.lang.String |
UPLOAD_FILES
5.7.6.3 (2014/05/23) アップロードファイルのCSVセットのキー
|
BR, BUFFER_MIDDLE, CRbodyContentid, pageContextEVAL_BODY_BUFFERED, EVAL_BODY_TAGEVAL_BODY_AGAINEVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE| コンストラクタと説明 |
|---|
FileUploadTag()
デフォルトコンストラクター
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
int |
doEndTag()
Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
|
protected java.lang.String |
getTagName()
タグの名称を、返します。
|
protected void |
release2()
タグリブオブジェクトをリリースします。
|
void |
setColumns(java.lang.String clms)
【TAG】DBTableModel作成時に、指定のカラムの"_01"~"_99"の添え字をレコードとして作成します。
|
void |
setFilename(java.lang.String fname)
【TAG】(通常は使いません)ファイルを作成するときのファイル名をセットします(初期値:null)。
|
void |
setFileURL(java.lang.String url)
【TAG】ファイルをアップロードするディレクトリを指定します
(初期値:FILE_URL[=])。
|
void |
setMaxPostSize(java.lang.String maxPS)
【TAG】最大転送サイズ(Byte)を指定します(初期値:31457280)。
|
void |
setTableId(java.lang.String id)
【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します
(初期値:HybsSystem#TBL_MDL_KEY[=])。
|
void |
setUseBackup(java.lang.String flag)
【TAG】すでに同名のファイルが存在した場合に、バックアップ処理するかどうか[true/false/rename]を指定します(初期値:null=false)。
|
java.lang.String |
toString()
このオブジェクトの文字列表現を返します。
|
add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsg, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSumRequestValue, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheckdoInitBody, getBodyContent, getPreviousOut, release, setBodyContentfindAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValueclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetParent, setPageContext, setParentpublic static final java.lang.String UPLOAD_FILES
public FileUploadTag()
public int doEndTag()
doEndTag インタフェース内 TagdoEndTag クラス内 CommonTagSupportprotected void release2()
release2 クラス内 CommonTagSupportpublic void setFileURL(java.lang.String url)
url - ファイルURLSystemData.FILE_URLpublic void setMaxPostSize(java.lang.String maxPS)
maxPS - 最大転送サイズpublic void setTableId(java.lang.String id)
id - テーブルID (sessionに登録する時のID)public void setFilename(java.lang.String fname)
fname - ファイル名public void setColumns(java.lang.String clms)
clms - DBTableModel作成時のカラム列(CSV形式)public void setUseBackup(java.lang.String flag)
flag - バックアップ処理可否 [true:する/false:しない]protected java.lang.String getTagName()
getTagName クラス内 CommonTagSupportCommonTagSupport.getDocumentLink()public java.lang.String toString()
toString クラス内 CommonTagSupportWebアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.