- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个表单来将一些图像插入到 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/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!