public static void downloadFile(final Long fileId) throws IOException { response.setHeader("Accept-Ranges", "bytes"); notFoundIfNull(fileId); File underlyingFile = ... //load file String fileName = ...//name of the file Header rangeHeader = request.headers.get("range"); if (rangeHeader != null) { throw new PartialContent(underlyingFile, fileName); } else { renderBinary(new FileInputStream(underlyingFile), fileName, underlyingFile.length(), MimeTypes.getContentType(fileName), false); } }