|
|
WebOTX Manual V12.1 (第3版) 目次を表示 |
ファイル転送ライブラリを使用したサンプル
ここでは、ファイル転送ライブラリを利用したサンプルWebアプリケーション「サンプルファイル転送WebAP」の解説を記述します。
サンプル「サンプルファイル転送WebAP」は、以下のようなJSP、servletファイルで構成されています。

図2.5.5.1-1 サンプルファイル転送WebAPの構成
設定例.
| %WebOTXディレクトリ%\domains\domain1\config\server.policy |
| grant codeBase
"file:${com.nec.webotx.instanceRoot}/applications/fileupdownload/-" { permission java.io.FilePermission "${com.nec.webotx.instanceRoot}${/}applications${/}fileupdownload${/}-", "read,write,delete"; }; |
本サンプルWebアプリケーションを実行する手順について説明します。
各処理の処理手順を記述します。

図2.5.5.3-1 アップロードサンプル画面

図2.5.5.3-2 ダウンロードサンプル画面

図2.5.5.3-3 削除サンプル画面

図2.5.5.3-4 一覧取得サンプル画面
ファイル転送ライブラリはWebコンテナに対してリクエストを送信するタグと受信したリクエストを処理するクラスの2つに分けられます。
ファイル転送タグには、次のタグがあります、詳細はファイル転送タグ リファレンスを参照してください。
| タグ名 | タグ機能 |
|---|---|
| SetUpLoadTag | アップロード指定タグ |
| SelectUpLoadTag | アップロードファイル選択タグ |
| SetDownLoadTag | ダウンロードURL作成タグ |
| SetDelFileTag | ファイル削除指定タグ |
| GetFileDirTag | ファイル一覧取得タグ |
ファイル転送クラスには、次のメソッドがあります、詳細はファイル転送タグ リファレンス を参照してください。
| メソッド名 | メソッド機能 |
|---|---|
| getTransferCtl | 処理種別取得メソッド |
| getUpLoadFile | アップロード処理メソッド |
| getUpLoadData | アップロードデータ取得メソッド |
| deleteFile | ファイル削除メソッド |
ファイル転送ライブラリを利用したJSPファイルを実行するには、次の手順で行います。
/SampleUpLoad.jsp
このJSPファイル内にtaglibディレクティブを記述します(ファイル転送タグのtldファイルはコンテキストルートfileupdownloadのWEB-INF配下に配置されています)。taglibディレクティブを記述する場合、次の2つの利用形式があります。<%@ taglib uri="../WEB-INF/Ftrnmngtag.tld" prefix="trn" %> 〜 <body> <form name="ftran1" <trn:setUpLoad action="FileTrans" uppath="upload.txt"/>> <trn:selectUpLoad size="50"/><br> <INPUT type="submit" value="Up Load"> </form> 〜 </body>上記のように、taglibディレクティブのuri属性にファイル転送タグのtldファイルを指定し、prefix属性に任意の文字列(ここでは"trn")を指定すると、 <prexfix属性指定:タグ名〜>というタグ形式でファイル転送タグを利用できます。
<%@ taglib uri="filetransfer" prefix="trn" %> 〜 <body> <form name="ftran1" <trn:setUpLoad action="FileTrans" uppath="upload.txt"/>> <trn:selectUpLoad size="50"/><br> <INPUT type="submit" value="Up Load"> </form> 〜 </body>
上記のようにuri属性を指定した場合、「/WEB-INF/web.xml」 に次の記述を追加することで、ファイル転送タグを利用できます。
<taglib> <taglib-uri>filetransfer</taglib-uri> <taglib-location>/WEB-INF/Ftrnmngtag.tld</taglib-location> </taglib>
http://Webサーバ名(ドメイン省略不可):ポート番号/fileupdownload/SampleUpLoad.jsp
本ファイル転送ライブラリの利用手順を、ファイル転送ライブラリのサンプルアプリケーション「サンプルファイル転送WebAP」を例に説明します。各タグ機能および属性指定方法の詳細については、ファイル転送タグ リファレンスを参照してください。 ※説明に使用するソースは一部簡略化している為、実際のソースと異なる個所があります。
<%@ taglib uri="../WEB-INF/Ftrnmngtag.tld" prefix="trn" %>
<body>
<form name="ftran1"<trn:setUpLoad action="FileTrans" uppath="upload.txt"/>>
<trn:selectUpLoad size="50"/><br>
<INPUT type="submit" value="Up Load">
</form>
</body>
上記のJSPソースを「Up
Loadボタン」をクリックして実行すると「サーブレットのFileTransにselectUpLoadタグで選択したファイルを、upload.txtというファイル名で保存して下さい」という内容のアップロードリクエストを送信します。
public void doPost( HttpServletRequest req, HttpServletResponse res)
throws ServletException,IOException {
// ファイル転送クラスの生成
filetransmng = new FileTransMng(getServletContext());
// 処理種別の取得
int action = filetransmng.getTransferCtl( req );
if( action == FileTransMng.ACT_UPLOAD ) {
// ファイルアップロード処理
String putpath = filetransmng.getUpLoadFile( req );
out.println("ファイル["+putpath+"]のアップロードが完了しました。");
}
}
リクエストに対する上記処理を実行すると、selectUpLoadタグで選択されたファイルがコンテキストルート(fileupdownload/)にupload.txtの名前で保存されます。
<%@ taglib uri="../WEB-INF/Ftrnmngtag.tld" prefix="trn" %>
<body>
<a href="<trn:setDownLoad downpath="subdir/download.txt"/>">
<trn:setDownLoad downpath="subdir/download.txt"/>
</a>
</body>
上記のJSPソースを実行するとブラウザ上に指定したファイル(fileupdownload/subdir/download.txt)のURLが表示されます。表示されたURLを元にブラウザの「対象をファイルに保存」機能を使用することで、ダウンロードを行います。
<%@ taglib uri="../WEB-INF/Ftrnmngtag.tld" prefix="trn" %>
<body>
<form name="ftran1" <trn:setDelFile action="FileTrans" delpath="delete.txt" type="1"/>>
<INPUT type="submit" value="Delete File">
</form>
</body>
上記のJSPソースを「Delete
Fileボタン」をクリックして実行すると「サーブレットのFileTransに選択したファイル(delete.txt)を、削除して下さい」という内容の削除リクエストを送信します。
public void doPost( HttpServletRequest req, HttpServletResponse res)
throws ServletException,IOException {
// ファイル転送クラスの生成
filetransmng = new FileTransMng(getServletContext());
// 処理種別の取得
int action = filetransmng.getTransferCtl( req );
if( action == FileTransMng.ACT_DELETEFILE ) {
// ファイル削除処理
filetransmng.deleteFile( req );
out.println("ファイルの削除が完了しました");
}
}
リクエストに対する上記処理を実行すると、指定ファイル(fileupdownload/delete.txt)が削除されます。
<%@ taglib uri="../WEB-INF/Ftrnmngtag.tld" prefix="trn" %>
<body>
<SELECT size="5">
<trn:getFileDir dirpath="FileTransSample/">
<OPTION><%=(String)pageContext.getServletContext().getAttribute("FILEDIR")%>
</trn:getFileDir>
</SELECT>
</body>
上記のJSPソースを実行するとブラウザ上に指定したディレクトリ(fileupdownload/FileTransSample/)配下のファイル一覧がURL形式で表示されます。
setUpLoadTag タグ
formタグ中に記述する事でリクエストパラメータにアップロード指示を設定します。アップロードファイル選択タグと組み合わせて使用します。
表2.5.5.7-1 タグボディ形式 JSP形式 返却スクリプト変数 なし 使用可能箇所 formタグ中 指定属性
属性名 指定省略 変数定義 説明 action 必須 不可 formタグのaction(リクエスト先)を設定します。 dtname 必須 可能 アップロード先のファイルパスをコンテキストルートからの相対パスで設定します。 プロパティ なし 使用例
example : SetUpLoadTag使用例 <%@ taglib uri="../WEB-INF/Ftrnmngtag.tld" prefix="trn" %> 〜 <body> <form name="ftran1" <trn:setUpLoad action="FileTrans" uppath="upload.txt"/>> <trn:selectUpLoad size="50"/><br> <INPUT type="submit" value="Up Load"> </form> 〜 </body>
selectUpLoadTag タグ
アップロードするファイルの選択を行う処理をHTML中に出力します。
表2.5.5.7-2 タグボディ形式 JSP形式 返却スクリプト変数 なし 使用可能箇所 setUpLoadTagの指定されたformタグ中 指定属性
属性名 指定省略 変数定義 説明 size 省略可 不可 ファイル名入力欄のサイズを入力します。 プロパティ なし 使用例
example : selectUpLoadTag使用例 <%@ taglib uri="../WEB-INF/Ftrnmngtag.tld" prefix="trn" %> 〜 <body> <form name="ftran1" <trn:setUpLoad action="FileTrans" uppath="upload.txt"/>> <trn:selectUpLoad size="50"/><br> <INPUT type="submit" value="Up Load"> </form> 〜 </body>
setDownLoadTag タグ
コンテキストルートからの相対パスを指定することでURLを編集し、HTML中に出力します。
表2.5.5.7-3 タグボディ形式 JSP形式 返却スクリプト変数 なし 使用可能箇所 制限なし 指定属性
属性名 指定省略 変数定義 説明 downpath 必須 可能 ダウンロード対象のファイルパスをコンテキストルートからの相対パスで設定します。 プロパティ なし 使用例
example : setDownLoadTag使用例 <%@ taglib uri="../WEB-INF/Ftrnmngtag.tld" prefix="trn" %> <body> <a href="<trn:setDownLoad downpath="subdir/download.txt"/>"> <trn:setDownLoad downpath="subdir/download.txt"/> </a> </body>
setDelFileTag タグ
formタグ中に記述する事でリクエストパラメータにファイル削除を設定します。
表2.5.5.7-4 タグボディ形式 JSP形式 返却スクリプト変数 なし 使用可能箇所 formタグ中 指定属性
属性名 指定省略 変数定義 説明 action 必須 不可 formタグのaction(リクエスト先)を設定します。 delpath 必須 可能 削除対象のファイルパスをコンテキストルートからの相対パスで設定します。 type 省略可 不可 削除対象のファイルパスがディレクトリで 1 を設定した場合、指定ディレクトリ以下が全削除されます。 削除対象のファイルパスがディレクトリで 0 を設定した場合、指定ディレクトリ配下の全ファイルが削除されます。 削除対象のファイルパスがファイルであった場合は無視されます。 プロパティ なし 使用例
example : setDelFileTag使用例 <%@ taglib uri="../WEB-INF/Ftrnmngtag.tld" prefix="trn" %> <body> <form name="ftran1" <trn:setDelFile action="FileTrans" delpath="delete.txt" type="1"/>> <INPUT type="submit" value="Delete File"> </form> </body>
getFileDirTag タグ
指定したディレクトリのファイル(URL形式)の一覧を取得します。取得した一覧は、タグ内でループしつつgetAttribute()で"FILEDIR"の名前で取得します。
表2.5.5.7-5 タグボディ形式 JSP形式 返却スクリプト変数 なし 使用可能箇所 制限なし 指定属性
属性名 指定省略 変数定義 説明 dirpath 必須 可能 一覧取得対象のディレクトリをコンテキストルートからの相対パスで設定します。 プロパティ なし 使用例
example : GetFileDirTag使用例 <%@ taglib uri="../WEB-INF/Ftrnmngtag.tld" prefix="trn" %> <body> <SELECT size="5"> <trn:getFileDir dirpath="FileTransSample/"> <OPTION><%=(String)pageContext.getServletContext().getAttribute("FILEDIR")%> </trn:getFileDir> </SELECT> </body>
getTransferCtl メソッド
リクエストより処理種別を抽出します。
表2.5.5.8-1 パラメータ
引数名 引数の型 説明 HTTPリクエスト HttpServletRequest サーブレットのリクエストを設定します。 例外 FileTransMngException 戻り値 処理種別
2:FileTransMng.ACT_UPLOAD(ファイルアップロード)
4:FileTransMng.ACT_DELETEFILE(ファイル削除)使用可能箇所 制限なし 使用例
example : getTransferCtl()使用例 filetransmng = new FileTransMng(getServletContext()); int action = filetransmng.getTransfarCtl( req ); if( action == FileTransMng.ACT_UPLOAD ) { // ファイルアップロード処理 String putpath = filetransmng.getUpLoadFile( req ); } else if( action == FileTransMng.ACT_DELETEFILE ) { // ファイル削除処理 filetransmng.deleteFile( req ); }
getUpLoadFile メソッド
アップロードリクエストを処理します。リクエスト中のファイルデータを抽出し、指定ファイルに格納します。
表2.5.5.8-2 パラメータ
引数名 引数の型 説明 HTTPリクエスト HttpServletRequest サーブレットのリクエストを設定します。 例外 FileTransMngException、IOException 戻り値 格納したファイルへのパス 使用可能箇所 ファイルアップロードリクエストの場合 使用例
example : getUpLoadFile()使用例 filetransmng = new FileTransMng(getServletContext()); int action = filetransmng.getTransfarCtl( req ); if( action == FileTransMng.ACT_UPLOAD ) { // ファイルアップロード処理 String putpath = filetransmng.getUpLoadFile( req ); } else if( action == FileTransMng.ACT_DELETEFILE ) { // ファイル削除処理 filetransmng.deleteFile( req ); }
getUpLoadData メソッド
アップロードリクエストを処理します。アップロードされたファイルをリクエストより抽出、ファイル名とバイナリデータを取得します。
表2.5.5.8-3 パラメータ
引数名 引数の型 説明 HTTPリクエスト HttpServletRequest サーブレットのリクエストを設定します。 例外 FileTransMngException、IOException 戻り値 TransDataクラス ※使用例参照 使用可能箇所 ファイルアップロードリクエストの場合 使用例
example : getUpLoadData()使用例 filetransmng = new FileTransMng(getServletContext()); int action = filetransmng.getTransfarCtl( req ); if( action == FileTransMng.ACT_UPLOAD ) { // ファイルアップロード処理 TransData transdata = filetransmng.getUpLoadData( req ); } else if( action == FileTransMng.ACT_DELETEFILE ) { // ファイル削除処理 filetransmng.deleteFile( req ); } TransDataクラスについて アップロードデータアクセスメソッド ・byte[] getTransData() : アップロードデータ取得 ・String getTransName() : アップロードファイル名取得
deleteFile メソッド
ファイル削除リクエストで指定されたファイル(ディレクトリ)を削除します。
表2.5.5.8-4 パラメータ
引数名 引数の型 説明 HTTPリクエスト HttpServletRequest サーブレットのリクエストを設定します。 例外 FileTransMngException、IOException 戻り値 なし 使用可能箇所 ファイル削除リクエストの場合 使用例
example : deleteFile()使用例 filetransmng = new FileTransMng(getServletContext()); int action = filetransmng.getTransfarCtl( req ); if( action == FileTransMng.ACT_UPLOAD ) { // ファイルアップロード処理 String putpath = filetransmng.getUpLoadFile( req ); } else if( action == FileTransMng.ACT_DELETEFILE ) { // ファイル削除処理 filetransmng.deleteFile( req ); }