- ベストアンサー
Javaでアップロードされた画像の種類を判定するには?
JavaServletで、ファイルをアップロードする仕組みをつくっています。 アップロードするファイルは、画像(JPG,GIF,BMP)を想定しています。 ここで、アップロードされたファイルが上記画像でない場合、エラーに したのですが、Javaで、アップロードされたファイルの画像の種類を 特定することは加納でしょうか? 単純に、拡張子で判定するだけではなく、バイナリレベルでの確認を 行いたいと考えています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
JpegもGIFもBMPもファイルフォーマットが決まっているのでアップロードされたファイルのデータがフォーマットに従っているか調べればよいかと思います。 と言っても、あまり利口ではないのでjavax.imageioあたりを使って実際にファイルがイメージファイルとして読み込めるかどうかを判定すると楽だと思います。 どのバージョンのJavaを使うかわかりませんが、Jpeg,GIF,BMPあたりはたぶんサポートされていると思います。
その他の回答 (1)
- Bonjin
- ベストアンサー率43% (418/971)
回答No.2
>BMPのみ対応していませんでした。 Java 5.0以降なら標準でBMPが読み込めます。5.0より前だと標準では無理ですね。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/relnotes/features.html#imageio
補足
回答ありがとうございます。 ImageReaderクラスのgetFormatNameメソッドで取得することが可能でしたが、 BMPのみ対応していませんでした。 BMPに対応したクラスやメソッドなどはあるのでしょうか?