java - 如何知道上传的文件是否是图像

标签 java jsp servlets

我创建了一个表单来将一些图像插入到 blob 字段中。选择我使用的图像

<input type="file"....

我有这种形式:

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

在 servlet 中,我使用它来“获取”上传的图像

 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());
    }

最佳答案

您可以使用 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

关于java - 如何知道上传的文件是否是图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19662368/

相关文章:

java - 我想将数据库中的多个图像显示到 jsp(我正在映射 servlet),所以在 jsp 中,我将显示在 img 标签的 src 中

java - 如何在 JTable 之后添加 JButton

java - Servlet 和 jsp 字符编码特性

java - Struts 标签位于另一个标签内 STRUTS 1.3

java - Tomcat 和我的 JSP/Servlet 应用程序之间的区别?

java - 如何从 SessionID 获取 HttpSession 对象?

java - 您可以使用 JAX-RS/Jersey 进行传统的 Servlet 过滤吗?

java - 光标箭头后的类似工具提示的消息

java - 如何从 Java 程序中异步运行 shell 脚本

java - 如何将ID传递给 Controller ​​?