クライアントからファイル名をサーブレットに渡し、
そのファイルを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で質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- 画像編集・動画編集・音楽編集 DVD Styler トラブル解決方法 6 2022/10/29 16:00
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- その他(コンピューター・テクノロジー) <a href="file:///フォルダ名/ファイル名">リンクテキスト</a>について 1 2023/04/06 22:40
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
OLE又はDDEを使うVISUAL BESIC...
-
Access クエリ実行が急に非常に...
-
LINK : fatal error LNK1104に...
-
VB6で、C言語の(argv,argc)み...
-
VBAでMP3を鳴らしたい
-
exeファイルをすぐに終了させな...
-
VB6.0で作ったプロジェクトが起...
-
c/c++ ビルドしたにもかかわら...
-
Javaで作成したソフトの配布 J...
-
batからexeを実行し戻り値を受...
-
exeファイルを作成できるプログ...
-
複数のJarファイルにクラスパス...
-
JAVAのAPIのコールの仕方で質問...
-
バッチファイルをEXEファイ...
-
64bit環境で32bitのodbc参照
-
ディレクトリを変更して外部コ...
-
コンパイル ./aと./a.out の違い
-
JavaScriptでコマンドプ...
-
MATLAB から exe ファイルの実...
-
フォルダ内の特定 拡張子のファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
JavaScriptでコマンドプ...
-
OLE又はDDEを使うVISUAL BESIC...
-
VC++から引数付きexeファイルの...
-
VBAでEXEファイルを動かす方法...
-
LINK : fatal error LNK1104に...
-
64bit環境で32bitのodbc参照
-
WScript.Echo と msgbox
-
batからexeを実行し戻り値を受...
-
VBAでMP3を鳴らしたい
-
コマンドプロンプトで外のexeや...
-
batからexeを起動した際の戻り...
-
VBS形式ファイル:ダブルクリッ...
-
jarファイル実行時の環境変数の...
-
JAVA .jarファイルに再圧縮する...
-
jarファイルとjava.exeの関連付...
-
VBSでEXCELのXLSTARTにあるマク...
-
コンポーネント`MSCOMM32.cox'...
-
ローカルのHTMLからexeファイル...
-
c/c++ ビルドしたにもかかわら...
おすすめ情報