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

2005年12月14日 at 12:45 AM


さて本日は、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

ご注意

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

カレンダー

2005年12月
« 11月   1月 »
 1234
567891011
12131415161718
19202122232425
262728293031  

カテゴリー

Twitter

  • RT @truckerfling: Welcome Kristina! New Japan DevRel Program Manager @azureadvocates which means my anime-based Japanese is no longer neede… 5 hours ago
  • 詳細は、後ほどブログ等で別途書きますが、7月下旬から8月下旬にかけて「Japan Tour in Summer: Java & k8s on Azure まつり」 通称:てらだよしおまつり by #てらだよしおがんばれ ツアーを開… twitter.com/i/web/status/1… 5 hours ago
  • RT @chomado: 寺田さんの鬼スケジュール #jazug 寺田さんは夏休みシーズンを利用して日本横断して 地方のコミュニティに会いに行く! #てらだよしおがんばれ 私もいくつかのスポットに一緒に行こうと思っています☺️ https://t.co/6tmdnqtMzn 6 hours ago
  • RT @MegMallin: @MS_odasho Thank you so much to the #jazug for having me! #japan #azure 7 hours ago
  • RT @Rie_Moriguchi: 本日の #jazug NightではDevRel担当社員 (Cloud Advocate Team & MVP Team)よりコミュニティへの想いをお伝えいたしました。遅くまでご参加いただいた皆さま、ありがとうございました!And than… 7 hours ago

clustermap

ブログ統計情報

  • 1,138,798 hits

RSSフィード


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