/**
* 根据fullid 下载文件
*
* @param fullid
* 全文库的id
* @return
* @throws IOException
*/
@RequestMapping(value = "/download", method = RequestMethod.GET)
public ResponseEntity<InputStreamResource> downloadModel(@RequestParam(value = "fullid") String fullid)
throws IOException {
FullTextLibrary fullTextLibrary = fullTextLibraryRepository.findOne(fullid);
String title = fullTextLibrary.getTitle();
// String author=fullTextLibrary.getAuthor();
// String press=fullTextLibrary.getPress();
String fileName = title + ".pdf";
System.out.println(fileName);
String fileId = fullTextLibrary.getFileId();
//文件存在mongo 使用fs获取
Query query = new Query(Criteria.where("_id").is(new ObjectId(fileId)));
GridFSDBFile file = gridFsOps.findOne(query);
InputStream in = file.getInputStream();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
//下载文件名乱码问题
fileName = new String(fileName.getBytes("utf-8"), "iso-8859-1");
headers.setContentDispositionFormData("attachment", fileName);
return ResponseEntity.ok().contentLength(file.getLength())
.cacheControl(CacheControl.maxAge(3600, TimeUnit.SECONDS))
.contentType(MediaType.APPLICATION_OCTET_STREAM).headers(headers).body(new InputStreamResource(in));
}
页面展示: