我在eclipse中的resources文件夹下有一个名为images的文件夹。 我在图像文件夹中有多个图像。 我想通过调用Web服务在浏览器中显示所有图像。 我已经尝试了以下代码。我只能检索一个图像。我想要多个图像。我该怎么做?
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("images/").getPath());
final String[] EXTENSIONS = new String[]{
"png","jpg"// and other formats you need
};
// filter to identify images based on their extensions
final FilenameFilter IMAGE_FILTER = new FilenameFilter()
{
@Override
public boolean accept(final File dir, final String name) {
for (final String ext : EXTENSIONS) {
if (name.endsWith("." + ext)) {
return (true);
}
}
return (false);
}
};
if (file.isDirectory())
{
//list of files I get
for (final File fi : file.listFiles(IMAGE_FILTER))
{
OutputStream out =null;
OutputStream out1 =null;
BufferedImage bi =null;
try
{
System.out.println("file" +fi);
//I get different files from images folder and add that to bufferedImage.
bi= ImageIO.read(fi);
response.setContentType("image/jpeg");
out= response.getOutputStream();
ImageIO.write(bi, "png", out);
ImageIO.write(bi, "jpg", out);
out.close();
}
catch (final IOException e)
{
// handle errors here
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
资源不是文件。无法保证它们甚至存在于文件系统中,仅存在于JAR或WAR文件中。所以使用File方法是行不通的。
在任何情况下,只是将图像流序列化到浏览器也不会起作用。您应该生成一个HTML页面,其中包含<img>
个元素,包含图像的URL,并组织这些URL可下载。可能首先使用资源机制是不恰当的。