我有一个简单的托管应用程序,它可以将任何类型的文件发送到mongodb,然后我想从link下载它们,所有这些都可以工作,但我必须手动设置文件格式,例如发送filename.pdf这样的文件名,然后一切都可以完美地工作。不管怎样,有没有什么方法可以根据内容类型头或者其他什么自动完成呢?这是我返回文件的方法:
@GetMapping(value = "/download")
public ResponseEntity<Resource> download(@AuthenticationPrincipal User user,
@RequestParam("fileId") String fileId) throws FileNotFoundException {
Document file = storingService.loadFileByUsernameAndFileId(user.getUsername(), fileId);
Resource resource = new ByteArrayResource(file.getBinary().getData());
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getFileName() + "\"")
.header(HttpHeaders.CONTENT_TYPE, file.getContentType())
.body(resource);
}
当我像现在一样下载的时候,浏览器下载了一个文件但没有类型,只是通用文件,当我更新文件名后保存文件里面的一切都很好。所以我的问题是:
有没有办法设置基于文件格式的上传内容类型(例如application/pdf)?
或者我应该把文件格式和文件名一起发送,比如myimage.png作为文件名?
或者有其他更合适的方法?
暂无答案!
目前还没有任何答案,快来回答吧!