private void loadCompleteContent(final HttpServletRequestImpl request, final HttpServletResponseImpl response, final File file) throws IOException { response.setContentType(mimeTypeMapping.getMimeTypeByExtension(FileUtilities.getExtension(file.getName()))); response.setStatus(HttpServletResponse.STATUS_OK); response.setContentLength(file.length()); response.getHeaders().setHeader(Headers.HEADER_ACCEPT_RANGES, "bytes"); response.flushHeaders(); if (!request.getMethod().equals(HttpServletRequest.METHOD_HEAD)) { InputStream fileInputStream = new FileInputStream(file); try { response.serveStream(fileInputStream); } finally { IOUtilities.closeSilently(fileInputStream); } } response.flush(); }
response.setContentLength(rangeLength); response.setContentType(contentType); } else { boundary = StringUtilities.generateRandom(); response.setContentLength(rangePartHeaderSerializer.getPartHeadersLength(ranges, boundary, contentType, file.length()) + rangeLength);
/** * {@inheritDoc} */ @Override public void load(final String path, final HttpServletRequestImpl request, final HttpServletResponseImpl response) { String assetPath = getAssetPath(path); InputStream inputStream = null; try { inputStream = getInputStream(assetPath); response.setStatus(HttpServletResponse.STATUS_OK); // This must be done in a separate try catch block as some assets do not have a FD try (AssetFileDescriptor afd = assetManager.openFd(assetPath)) { response.setContentLength(afd.getLength()); } catch (IOException e) { // There is no asset description or we can't read the length of the asset } // TODO Set mime type //response.setContentType(JLWSConfig.MimeTypeMapping.getMimeTypeByExtension(fileExt)); response.flushHeaders(); response.serveStream(inputStream); } catch (IOException e) { throw new UnexpectedSituationException(e); } finally { IOUtilities.closeSilently(inputStream); } }