我是否必须手动发送文件类型并手动合并它,浏览器才能识别文件类型?

b4qexyjb  于 2021-07-23  发布在  Java
关注(0)|答案(0)|浏览(258)

我有一个简单的托管应用程序,它可以将任何类型的文件发送到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作为文件名?
或者有其他更合适的方法?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题