Example usage for com.mongodb.client.gridfs.model GridFSFile getExtraElements

List of usage examples for com.mongodb.client.gridfs.model GridFSFile getExtraElements

Introduction

In this page you can find the example usage for com.mongodb.client.gridfs.model GridFSFile getExtraElements.

Prototype

@Deprecated
@Nullable
public Document getExtraElements() 

Source Link

Document

All deprecated top level elements including any contentType or aliases data

Usage

From source file:org.restheart.handlers.files.GetFileBinaryHandler.java

License:Open Source License

private void sendBinaryContent(final GridFSBucket gridFSBucket, final GridFSFile file,
        final HttpServerExchange exchange) throws IOException {
    LOGGER.trace("Filename = {}", file.getFilename());
    LOGGER.trace("Content length = {}", file.getLength());

    if (file.getMetadata() != null && file.getMetadata().get("contentType") != null) {
        exchange.getResponseHeaders().put(Headers.CONTENT_TYPE,
                file.getMetadata().get("contentType").toString());
    } else if (file.getExtraElements() != null && file.getExtraElements().get("contentType") != null) {
        exchange.getResponseHeaders().put(Headers.CONTENT_TYPE,
                file.getExtraElements().get("contentType").toString());
    } else {// w ww .j av a2s .co  m
        exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, APPLICATION_OCTET_STREAM);
    }

    exchange.getResponseHeaders().put(Headers.CONTENT_LENGTH, file.getLength());

    exchange.getResponseHeaders().put(Headers.CONTENT_DISPOSITION,
            String.format("inline; filename=\"%s\"", extractFilename(file)));

    exchange.getResponseHeaders().put(Headers.CONTENT_TRANSFER_ENCODING, CONTENT_TRANSFER_ENCODING_BINARY);

    ResponseHelper.injectEtagHeader(exchange, file.getMetadata());

    exchange.setStatusCode(HttpStatus.SC_OK);

    gridFSBucket.downloadToStream(file.getId().asObjectId().getValue(), exchange.getOutputStream());

    exchange.endExchange();
}