Jaki jest najbardziej odpowiedni i standardowy sposób ustawiania Content-Disposition=attachment
i filename=xyz.zip
przy użyciu Spring 3 FileSystemResource
?Jak ustawić "Content-Disposition" i "Filename" podczas korzystania z FileSystemResource, aby wymusić pobranie pliku?
Akcja wygląda następująco:
@ResponseBody
@RequestMapping(value = "/action/{abcd}/{efgh}", method = RequestMethod.GET, produces = "application/zip")
@PreAuthorize("@authorizationService.authorizeMethod()")
public FileSystemResource doAction(@PathVariable String abcd, @PathVariable String efgh) {
File zipFile = service.getFile(abcd, efgh);
return new FileSystemResource(zipFile);
}
Chociaż jest to plik zip więc przeglądarka zawsze pobiera plik, ale chciałbym, aby wyraźnie wspomnieć plik jako załącznik, a także nazwę pliku, który ma nie ma nic wspólnego z rzeczywistą nazwą pliku.
Może istnieć obejście tego problemu, ale chciałbym poznać właściwą metodę Spring i FileSystemResource
, aby osiągnąć ten cel.
P.S. Używany tutaj plik jest plikiem tymczasowym oznaczonym do usunięcia, gdy istnieje JVM.
Należy jednak zauważyć, że ulegnie to zerwaniu, jeśli nazwa pliku zawiera znaki "token", takie jak białe znaki, znaki spoza zestawu ASCII i niektóre ograniczniki. –
krótka odpowiedź 'response.setHeader (" Content-Disposition "," attachment; filename = "+ YOUR_FILE_NAME);' –
Unikaj odpowiedzi tylko do kodu. Podaj objaśnienia dotyczące fragmentu kodu! – Manu343726