Creator2でJSF Fileuploadアプリケーション

2005年12月14日 at 12:45 午前


さて本日は、Creator2 EAを使用したファイルアップロードWebアプリケーションを
作成します。
まず、今までと同様新規プロジェクトを作成し下記の画面を作成してください。

ここで”アップロード”ボタンを押下します。
すると、”button1_action()”メソッドを実装する画面が表示されますので
下記のコードを記述します。
下記はファイルサイズを取得し1M未満のファイルであれば、
Applicationサーバが動作するマシンの”c:\tmp”ディレクトリにファイルを出力する
コードです。
(ただし、下記はファイルアップデートサンプルを記述するために、
 かなり手抜きに書いています。例:日本語ファイル名のファイルをアップロードした
 場合、下記はサーバ側でファイル名が文字化けします。)
 下記で重要な点は、fileUpload1というインスタンス変数を使用し
 アップロードされたファイルの操作を行うということです。

public String button1_action() {
UploadedFile upFile = fileUpload1.getUploadedFile();
//ファイルサイズの取得(バイト)
long fileSize = upFile.getSize();
if(fileSize <= 1048576){ //1M以下ならOK
//オリジナルファイル名の取得
String origFileName = upFile.getOriginalName();
//バイト配列の取得
byte[] data = upFile.getBytes();
try{
//オリジナルファイル名で書き込み
FileOutputStream fout = new FileOutputStream("c:\\tmp\\" + origFileName);
fout.write(data);
fout.flush();
fout.close();
}catch(IOException ioe){
return "error"; //エラーページへ
}
}else{
return "sizeerror"; //エラーページへ
}
return null;
}

上記の他、UploadedFileクラスのインスタンスメソッドには
下記のようなメソッドがあります。例えばコンテントタイプを取得し型に応じた処理を
行う場合にはgetContentType()メソッドを使用します。
また、取得するデータはgetBytes()メソッドの他、InputStreamを利用して
取得することも可能です。

//コンテントタイプの取得
String contentType = upFile.getContentType();
if(contentType.equals(“text/plain”)){
String stringData = upFile.getAsString();
//文字列処理を記述
}
try{
//InputStreamの取得
InputStream inStream = upFile.getInputStream();
}catch(IOException ioe){
return “error”; //エラーページへ
}

如何でしょう?
ファイルアップロードのWebアプリケーションも非常に簡単に作成できることが
御理解いただけたかと思います。

広告

Entry filed under: 未分類.

Apache Derby DatabaseをJava Enterprise Systemへ Creator2 正式リリース


Java Champion & Evangelist

Translate

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2005年12月
 1234
567891011
12131415161718
19202122232425
262728293031  

カテゴリー

clustermap

ブログ統計情報

  • 1,267,313 hits

RSSフィード

アーカイブ


%d人のブロガーが「いいね」をつけました。