diff --git a/src/org/redkale/net/http/RestHttpServlet.java b/src/org/redkale/net/http/RestHttpServlet.java index 102ded556..446e98c64 100644 --- a/src/org/redkale/net/http/RestHttpServlet.java +++ b/src/org/redkale/net/http/RestHttpServlet.java @@ -5,7 +5,7 @@ */ package org.redkale.net.http; -import java.io.IOException; +import java.io.*; import org.redkale.util.Attribute; /** @@ -20,11 +20,18 @@ public abstract class RestHttpServlet extends HttpBaseServlet { protected abstract T currentUser(HttpRequest req) throws IOException; protected void finishJson(final HttpResponse response, RestOutput output) throws IOException { - if (output != null) { - response.addHeader(output.getHeaders()); - response.addCookie(output.getCookies()); + if (output == null) { + response.finishJson(output); + return; + } + response.addHeader(output.getHeaders()); + response.addCookie(output.getCookies()); + + if (output.getResult() instanceof File) { + response.finish((File) output.getResult()); + } else { + response.finishJson(output.getResult()); } - response.finishJson(output == null ? null : output.getResult()); } protected void finishJsResult(final HttpResponse response, final String var, RestOutput output) throws IOException {