spring boot 返回文件流

import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource; 
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ContentDisposition;


@RequestMapping("/download")
public ResponseEntity download(HttpServletRequest request, @RequestBody QueryBHDownLoadFileVo param) {
    String path = "D:\\VipSoft.xlsx";
    String contentDisposition = ContentDisposition
            .builder("attachment")
            .filename(path)
            .build().toString();

    File file = new File(path);
    if (file.exists()) {
        return ResponseEntity.ok()
                .header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition)
                .contentType(MediaType.APPLICATION_OCTET_STREAM)
                .body(new FileSystemResource(path));
    } else {
        return ResponseEntity.badRequest()
                .header(HttpHeaders.CONTENT_DISPOSITION, contentDisposition + " Not Found")
                .contentType(MediaType.APPLICATION_OCTET_STREAM)
                .body(null);
    }

}

你可能感兴趣的:(java)