クライアントからファイル名をサーブレットに渡し、
そのファイルをImageIOでクライアントに返して表示させるプログラムを組んでいます。
そこで、クライアントからパラメータで受け取った文字列(画像ファイル名)を変数に入れ、
サーブレット側で指定してある文字列(ファイル格納ディレクトリへのパス)の最後にその変数を連結させたものから
Fileオブジェクトを作り、ImageIOのreadメソッドの引数として指定したところ
IIOExceptionの例外が発生します。(Can't read input file!)
サーブレット側でファイルへのパスを直接指定したものでFileオブジェクトを作って実行するとうまくいきます。
原因は何なのでしょうか?
String filename = request.getParameter(クライアントから受け取ったファイル名);
ServletContext sc = getServletContext();
String filepath = sc.getRealPath("/img/"+filename);
response.setContentType("image/jpg");
File file = new File(filepath);
BufferedImage readImage = ImageIO.read(file); ←ここで例外が発生します
ImageIO.write(readImage, "jpg", response.getOutputStream());
開発環境はEclipce,Tomcatです。
No.1ベストアンサー
- 回答日時:
> サーブレット側でファイルへのパスを直接指定したものでFileオ
> ブジェクトを作って実行するとうまくいきます。
あなたが直接指定した文字列と、request.getParameter()で受け取った文字列またはそれを使って合成したパスの文字列が、同じでない、としか言えませんね。そのへんのデバッグは、すでにやっていますか?
ranco様
クライアント側からPrintWriterで文字列を送る時に、println()で書き込みを行っており、
改行コードが入ってしまったせいでファイルのパスが間違いになってしまっていました。
文字列でデバッグした際は目に見えずに何がおかしいのかわかりませんでしたが、
文字列のデータを見た際、一番最後に違うものがついていたので気づきました。
また、この度は返事が大変遅れて申し訳ありませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LINK : fatal error LNK1104に...
-
jarファイルとjava.exeの関連付...
-
exeファイルをすぐに終了させな...
-
.exeファイルについて
-
WScript.Echo と msgbox
-
JARファイルをEclipseを使って...
-
Access クエリ実行が急に非常に...
-
VC++から引数付きexeファイルの...
-
VC++での外部プログラムの実行
-
VBからhtaファイルを開くには?
-
JavaScriptでコマンドプ...
-
VB.NET リソースの埋め込みにつ...
-
フォルダ内の特定 拡張子のファ...
-
バイナリ内へのファイルの内包
-
OLE又はDDEを使うVISUAL BESIC...
-
c言語でファイルのタイムスタン...
-
指定URLでブラウザを開くほか
-
VBAでEXEファイルを動かす方法...
-
バッファとは何ですか
-
フルパスから最後のディレクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
OLE又はDDEを使うVISUAL BESIC...
-
JavaScriptでコマンドプ...
-
VBAで他のプログラムが起動して...
-
VBAでEXEファイルを動かす方法...
-
LINK : fatal error LNK1104に...
-
c/c++ ビルドしたにもかかわら...
-
jarの開き方を教えてください。
-
eclipseで作ったプログラムを他...
-
VBAでMP3を鳴らしたい
-
ローカルのHTMLからexeファイル...
-
コンパイル ./aと./a.out の違い
-
VC++から引数付きexeファイルの...
-
WScript.Echo と msgbox
-
コンポーネント`MSCOMM32.cox'...
-
実行ファイルと実行モジュール...
-
jarファイルとjava.exeの関連付...
-
JAVA .jarファイルに再圧縮する...
-
ネットワーク越しのEXEファ...
-
コマンドプロンプトで外のexeや...
おすすめ情報