- PR -

ブラウザによるアップロード時のエラー(MyFaces利用)

1
投稿者投稿内容
しま太郎
常連さん
会議室デビュー日: 2006/08/22
投稿数: 39
投稿日時: 2007-06-08 11:23
いつもお世話になっています。

現在、JSFを使ってアップロード機能を持つサイトを作成中です。
(アップロード部分ではMyFacesを利用しています)

"InternetExplorer"では問題なくアップロードできていたのですが、
"Firefox"では「FileNotFoundException」のエラーとなってしまいます。
対処の仕方をぐぐって探しているのですが、対応策が見つかりません。
(検索方法に問題があるのかもしれませんが…)

対処方法をご存知の方がいらっしゃいましたら申し訳ございませんが、ご教授お願いいたします。
しま太郎
常連さん
会議室デビュー日: 2006/08/22
投稿数: 39
投稿日時: 2007-06-08 12:01
すみません・・
説明不足があったと思われるので、追加をさせていただきます。

アップロードページ(<x:inputFileUpload … を書いてあるページ)では特にエラーは出ません。
そこでアップロードされたファイルはsessionで持っているBEANに保存され、確認ページへ進みます。
ここまでは問題ないのですが、この確認ページからの遷移時にactionでアップロードファイルを一時ファイルとして保存する場面でエラー(FileNotFoundException)が発生します。

=================================================================
【主な動き】
@アップロード時
 "ファイルの拡張子検証検証","ファイルのサイズ検証"を行う
A確認画面から次ページへ遷移時のaction
 2.1 アップロードファイルの中の検証(テキストの文字読み取り)
     File file = new File(fileName);
     BufferedReader br =newBufferedReader(new FileReader(file));
     ↑※ここでエラー発生

 2.2 アップロードファイルを一時ファイルとして保存
=================================================================

大まかな動きとしては上記のようになります。
説明不足がございましたら恐縮ですが、お知らせください。

よろしくお願いいたします。
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2007-06-08 12:13
引用:

しま太郎さんの書き込み (2007-06-08 12:01) より:

@アップロード時
 "ファイルの拡張子検証検証","ファイルのサイズ検証"を行う
A確認画面から次ページへ遷移時のaction
 2.1 アップロードファイルの中の検証(テキストの文字読み取り)
     File file = new File(fileName);
     BufferedReader br =newBufferedReader(new FileReader(file));
     ↑※ここでエラー発生

 2.2 アップロードファイルを一時ファイルとして保存


ひとつ確認させて頂きたいのですが、
エラーが発生している箇所で指定されているファイルは、
サーバー上でなく、クライアント上のファイルなのでしょうか。

もしそうだとしたら、Webアプリとしてはあり得ないですが。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-06-08 13:05
JSFでのファイルアップロードはやったことないのですが、
他のフレームワークの場合はクライアントからアップロードされた
ファイルを一時ファイルとしてサーバ側に保存し、そのファイルを
java.io.Fileとして取得できるようになっていたりします。

本件では、そのサーバ側に作られる一時ファイルがFirefoxからの
アップロードではうまく作られず、FileNotFoundExceptionと
なるという挙動ではないかと推測します。

私がデバッグする立場だとしたら、この推測が正しいか否かを
確認するところからはじめます。
場合によって、フレームワークの内部までソースを追いかけることに
なるかもしれませんし、HTTPのパケットから確認することになるかもしれません。
しま太郎
常連さん
会議室デビュー日: 2006/08/22
投稿数: 39
投稿日時: 2007-06-08 13:35
引用:

nagiseさんの書き込み (2007-06-08 13:05) より:
他のフレームワークの場合はクライアントからアップロードされた
ファイルを一時ファイルとしてサーバ側に保存し、そのファイルを
java.io.Fileとして取得できるようになっていたりします。



ご返答頂き、ありがとうございます。
Edossonさんのご返答にもありましたが、作り的に問題があるようですね・・
ちょっと作りをもう一度見直してみたいと思います。
その後、nagiseさんのアドバイスをもう一度拝見させていただきます。
お手数をおかけいたしました。
アドバイス、ありがとうございました。
1

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