有一个rest控制器使用get-mapped方法:
@GetMapping(value="/{filename}", produces= MediaType.APPLICATION_PDF_VALUE)
public @ResponseBody byte[] letItTry(@PathVariable("filename") String filename) {
try {
return download(filename);
}
catch (Exception ex) {
return new byte[0];
}
}
下载方法如下所示:
public byte[] download(String filename) {
try(var fis= new FileInputStream(new File(filename))) {
return fis.readAllBytes();
}
catch (Exception ex) {
return new byte[0];
}
}
从web浏览器调用端点时,它返回带有默认restcontroller名称的pdf文档,例如“test.pdf”。有没有办法强制控制器返回给定自定义名称的文件?
1条答案
按热度按时间ndasle7k1#
您应该将httpservletresponse添加到get方法中,并使用标头在其中设置文件名: