简体   繁体   English

如何在 spring 启动中的 header 中设置文件大小以显示下载进度?

[英]How to set file size in the header in spring boot to display the download progress?

How to set file size in the header in spring boot to display the download progress in the client?如何在 spring 启动中的header中设置file size以在客户端显示下载进度?

@GetMapping(value = "/document/{nodeRef}/{versionNumber}")
public byte[] getDocumentWithVersion(@PathVariable(value = "nodeRef") UUID nodeRef, @PathVariable(value = "versionNumber") Double versionNumber) {
    return docService.getDocument(nodeRef, versionNumber);
}

The client receives the header before the file or the body starts the download.客户端在filebody开始下载之前收到header So added Content-length and content-type in the header .因此在header中添加了Content-lengthcontent-type

@GetMapping(value = "/document/{nodeRef}/{versionNumber}")
public ResponseEntity<byte[]> getDocumentWithVersion(@PathVariable(value = "nodeRef") UUID nodeRef, @PathVariable(value = "versionNumber") Double versionNumber) {
    byte[] file = alfrescoService.getDocument(null, nodeRef, versionNumber);
    HttpHeaders headers = new HttpHeaders();
    headers.add(HttpHeaders.CONTENT_LENGTH, String.valueOf(file.length));
    headers.add(HttpHeaders.CONTENT_TYPE, "application/octet-stream");
    return ResponseEntity.ok().headers(headers).body(file);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM