From 0a2a9f0e80a6602fdbb9c73dcc0abb276671ad8e Mon Sep 17 00:00:00 2001 From: Redkale <22250530@qq.com> Date: Wed, 14 Sep 2016 10:48:16 +0800 Subject: [PATCH] --- .../redkale/net/http/HttpResourceServlet.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/org/redkale/net/http/HttpResourceServlet.java b/src/org/redkale/net/http/HttpResourceServlet.java index bd771923f..e7081c23a 100644 --- a/src/org/redkale/net/http/HttpResourceServlet.java +++ b/src/org/redkale/net/http/HttpResourceServlet.java @@ -249,7 +249,28 @@ public class HttpResourceServlet extends HttpServlet { this.servlet = servlet; this.file = null; this.filename = filename; - this.content = content; + this.content = content.asReadOnlyBuffer(); + this.servlet.cachedLength.add(this.content.remaining()); + } + + public FileEntry(final HttpResourceServlet servlet, String filename, InputStream in) throws IOException { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + byte[] bytes = new byte[10240]; + int pos; + while ((pos = in.read(bytes)) != -1) { + out.write(bytes, 0, pos); + } + in.close(); + byte[] bs = out.toByteArray(); + ByteBuffer buf = ByteBuffer.allocateDirect(bs.length); + buf.put(bs); + buf.flip(); + + this.servlet = servlet; + this.file = null; + this.filename = filename; + this.content = buf.asReadOnlyBuffer(); + this.servlet.cachedLength.add(this.content.remaining()); } public void update() {