Was ist die geeignetste und Standardmethode, um die Content-Disposition=attachment
und filename=xyz.zip
unter Verwendung von Spring 3 FileSystemResource
einzustellen?Wie wird 'Content-Disposition' und 'Dateiname' festgelegt, wenn FileSystemResource verwendet wird, um eine Dateidownloaddatei zu erzwingen?
Die Aktion sieht so aus:
@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);
}
Obwohl die Datei eine Zip-Datei ist damit der Browser immer die Datei herunterlädt, aber ich möchte ausdrücklich die Datei als Anhang erwähnen, und auch einen Dateinamen bereitzustellen, hat nichts mit dem tatsächlichen Namen der Dateien zu tun.
Es könnte Workarounds für dieses Problem geben, aber ich würde gerne den richtigen Frühling kennen und FileSystemResource
Weg, um dieses Ziel zu erreichen.
P.S. Die Datei, die hier verwendet wird, ist eine temporäre Datei, die zum Löschen markiert wird, wenn die JVM existiert.
Aber beachten Sie, dass dies bricht, wenn der Dateiname nicht "Token" -Zeichen wie Leerzeichen, Nicht-ASCII und bestimmte Trennzeichen enthält. –
kurze Antwort 'response.setHeader (" Content-Disposition "," Anhang; Dateiname = "+ YOUR_FILE_NAME);' –
Vermeiden Sie Code-Only-Antworten. Geben Sie einige Erläuterungen zum Snippet an! – Manu343726