Java 如何在spring boot中设置头文件大小以显示下载进度?
如何在spring boot中设置Java 如何在spring boot中设置头文件大小以显示下载进度?,java,spring-boot,file,http-headers,multipart,Java,Spring Boot,File,Http Headers,Multipart,如何在spring boot中设置标题中的文件大小,以在客户端显示下载进度 @GetMapping(value = "/document/{nodeRef}/{versionNumber}") public byte[] getDocumentWithVersion(@PathVariable(value = "nodeRef") UUID nodeRef, @PathVariable(value = "versionNumber")
标题中的文件大小
,以在客户端显示下载进度
@GetMapping(value = "/document/{nodeRef}/{versionNumber}")
public byte[] getDocumentWithVersion(@PathVariable(value = "nodeRef") UUID nodeRef, @PathVariable(value = "versionNumber") Double versionNumber) {
return docService.getDocument(nodeRef, versionNumber);
}
在文件
或正文
开始下载之前,客户端会收到标题
。因此在标题中添加了内容长度
和内容类型
@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);
}
@GetMapping(value=“/document/{nodeRef}/{versionNumber}”)
公共响应属性getDocumentWithVersion(@PathVariable(value=“nodeRef”)UUID nodeRef,@PathVariable(value=“versionNumber”)双版本号){
byte[]file=alfrescoService.getDocument(null,nodeRef,versionNumber);
HttpHeaders=新的HttpHeaders();
add(HttpHeaders.CONTENT_LENGTH,String.valueOf(file.LENGTH));
headers.add(HttpHeaders.CONTENT_类型,“应用程序/八位字节流”);
返回ResponseEntity.ok().headers(headers).body(文件);
}
将返回类型更改为ResponseEntity,然后返回ResponseEntity.ok().contentLength(docBytes.length)、body(docBytes);谢谢@Daniel F。刚才我修好了。完全一样!!!