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 @mreinhold: New release model in action: JEP 309 will not make JDK 10, so now proposed to target JDK 11: j.mp/2j93lME #jdk1015 hours ago
  • BSフジで、今TOSHIが昔のXのナンバーをXじゃない若い世代のバンドメンバーの演奏と共に歌っている。まじで懐かしい曲ばかり 2 days ago
  • 今日は所用がございまして、お先に失礼失礼大変申し訳ございませんでした。また、仙台に伺いますので、ぜひ今後ともどうぞよろしくお願いします。 twitter.com/ghustik/status… 4 days ago
  • RT @tokuhirom: Microsoft and GitHub team up to take Git virtual file system to macOS, Linux | Ars Technica #SmartNews https://t.co/D0PuHeE… 4 days ago
  • @nagise 誠に申し訳ございません!!2/3 (土)は、既に予定が入っておりました!!(T_T) 4 days ago

clustermap

ブログ統計情報

  • 1,014,554 hits

Feeds


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