0

BLOB フィールドに画像を挿入するフォームを作成しました。使用する画像を選択するには

<input type="file"....

私はこの種のフォームを持っています:

<form enctype="multipart/form-data" method="post" ....

サーブレットでは、これを使用してアップロードされた画像を「取得」します

 Part immagine = request.getPart("immaginePrincipale");

しかし、ここで質問があります。ファイルが画像であり、画像として名前が変更された別のファイルではないことをどのように確認できますか (たとえば、file.txt の名前が file.jpg に変更された場合)。

////////////////////////////////解決///////////////// ///////////////////////////////

@sdanzig によって提供されたコードは機能しているようです。

InputStream をメソッド createImageInputStream() に渡しました

     ImageInputStream iis = ageIO.createImageInputStream(myInpuStream);
    Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);


    while (readers.hasNext()) {
        ImageReader read = readers.next();
        System.out.println("format name = " + read.getFormatName());
    }
4

1 に答える 1

3

ImageReader.getFormatName() を使用できます

http://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageReader.html#getFormatName()

次に例を示します。

import java.io.IOException;
import java.net.URL;
import java.util.Iterator;

import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;

public class Main {
    public static void main(String[] args) throws IOException {
        URL[] urls = { new URL("http://yourserver/small.png") };
        for (URL url : urls) {
            ImageInputStream iis = ImageIO.createImageInputStream(url
                    .openStream());
            Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);

            System.out.println("url= " + url.getPath());
            while (readers.hasNext()) {
                ImageReader read = readers.next();
                System.out.println("format name = " + read.getFormatName());
            }
            System.out.println();
        }
    }
}

raw、jpeg、tif、WBMP、PNM、JPG、DICOM、wbmp、JPEG、PNG、jpeg 2000、tiff、BMP、JPEG2000、RAW、jpeg2000、GIF、TIF、TIFF、jpg、 bmp、pnm、png、JPEG 2000、gif

于 2013-10-29T15:37:20.947 に答える