我需要在每个响应中返回1 * 1像素的相同虚拟图像。我使用bufferArray来执行此操作,我的代码snipet如下:
val image: BufferedImage = ImageIO.read(new File("public/images/dummy.png"));
val baos: ByteArrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(image, "png", baos);
Ok(baos.toByteArray).as("image/png")
经过一段时间服务器抛出错误后,java.io.excp打开了太多文件。
请帮忙,有没有其他方法可以做到这一点?
我已将该imagebuffer部分放入另一个对象(即对象abc {})并将其用作abc.baos。但错误是一样的。
答案 0 :(得分:1)
你可以使用:
Ok.sendFile(new File("public/images/dummy.png"))
答案 1 :(得分:0)
您应该能够将该文件作为响应提供。 Play有文件的响应编写器,因此不需要ByteArrayBuffer。如果您这样做,Play也应该在服务后为您关闭文件。
另请查看我在主帖后面的缓存评论