0
我在eclipse中的資源文件夾下有一個名爲images的圖像文件夾。 而我在圖像文件夾中有多個圖像。 我想通過調用Web服務在瀏覽器中顯示所有圖像。 我已經嘗試了下面的代碼。我能夠只檢索一個圖像。我想要這個多個圖像。我該怎麼做?在java中寫入多個圖像到輸出流
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();
}
}
}
這可能是因爲你在每次迭代中關閉響應輸出流? 'out.close()'。你能移動這個語句來最終阻止你的循環並嘗試嗎? –
@AniketThakur我已經嘗試過,但仍然是同樣的問題。 –
如果你想讓它在普通的網頁瀏覽器中工作,你的方法將無法工作。只是因爲瀏覽器期望每個請求/響應一個圖像。您需要創建一個服務/資源來創建所有文件的列表(即帶有多個IMG標籤的HTML響應),然後再創建一次處理一個圖像的另一個服務,以便從HTML中轉換路徑或其他標識符到文件位於服務器上的路徑(大多數Web服務器已經完成了這些操作)。 – haraldK