- PR -

JSFでのファイルアップロード

1
投稿者投稿内容
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-05-23 15:19
お世話になります。

JSFでファイルをアップロードする機能を実装していますが、
なかなかうまく行きませんでした。Myfacesを利用しなければ
ファイルアップロード機能の実現はできませんか?
ご教授ください。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2006-05-23 15:42
引用:

Mxfullさんの書き込み (2006-05-23 15:19) より:
なかなかうまく行きませんでした。Myfacesを利用しなければ
ファイルアップロード機能の実現はできませんか?


標準のJSF仕様にファイルアップロードは含まれていません。
MyFacesやADF Facesの入力コンポーネントを使うか、
Commons FileUploadを使ったりして作りこむかのどちらかでしょう。
末記人
常連さん
会議室デビュー日: 2004/03/31
投稿数: 27
投稿日時: 2006-05-23 16:15
↓MyFacesで試してるんなら参考にしてください。
MyFaces Tomahawk Examples>File upload
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-05-23 16:20
有難うございます。

Commons FileUploadでできるならいいかなと思います。
サンプルなどを探してみます。

ちなみに、JSFのみでDownloadできますか?

宜しくお願いいたします。
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-06-18 20:27
お世話になります。

MyFacesを利用してもいいですが、ファイルアップロード用の
ソースがあれば教えてください。
こちらは何日かかって試してきていますが、やはりだめです。


宜しくお願いいたします。
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-06-18 22:16
お世話になります。
自己返信ですが、下記のように書けば、サーバからサーバへのアップロードができますが、
クライアントからサーバへのアップロードができません。fromはアップロードするファイルの
絶対パスです。toはアップロードされるファイルを保存するディレクトリの絶対パスです。
この二つのパラメータはどう設定すれば正しいかご教授ください。

public void upload(String from, String to) throws IOException{
try{
BufferedInputStream in=new BufferedInputStream(new FileInputStream(from));
PrintStream out=new PrintStream(new BufferedOutputStream(new FileOutputStream(filepath+"\\"+to)));
System.setIn(in);
System.setOut(out);
System.setErr(out);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String s;
while((s=br.readLine())!=null)
System.out.println(s);
out.close();
}catch(Exception er){}


}
さいくろう
大ベテラン
会議室デビュー日: 2005/11/19
投稿数: 170
お住まい・勤務地: 川崎市
投稿日時: 2006-06-18 22:38
引用:

下記のように書けば、サーバからサーバへのアップロードができますが、
クライアントからサーバへのアップロードができません。

public void upload(String from, String to) throws IOException{


できるわけ無いでしょ。
サーバーとクライアントの区別をつけるのと、
Webアプリの仕組みを勉強しましょう。

自分でがしがし書くのなら、
ServletRequiestから、以下のメソッドで、Streamを取得できます。

http://www.ingrid.org/jajakarta/servletapi/servletapi-4.0/docs-ja/javax/servlet/ServletRequest.html#getInputStream()

ただし。
Streamからデータを読み込んだ後、
自分で、パーティションを解析して、ヘッダー類を除去して、
ファイルを復元する必要がありますので、ご注意を。

私はJakartaのパッケージは使ったことがないので、ここまでで失礼。

<追記>
いうまでもありませんが、Jakarta CommonsのFileUploadが使えば、
んなことせんでもええですけどね。

[ メッセージ編集済み 編集者: さいくろう 編集日時 2006-06-18 22:45 ]
さいくろう
大ベテラン
会議室デビュー日: 2005/11/19
投稿数: 170
お住まい・勤務地: 川崎市
投稿日時: 2006-06-18 22:56
ついでだから、Jakarta CommonsのAPIドキュメントのトップページ。
ちゃんとサンプルもついてますよ。

http://www.jajakarta.org/commons/fileupload-1.0/ja/withoutPrimary/org/apache/commons/fileupload/package-summary.html
1

スキルアップ/キャリアアップ(JOB@IT)