Qual è il modo più appropriato e standard per impostare e filename=xyz.zip
utilizzando Spring 3 FileSystemResource
?Come impostare "Content-Disposition" e "Filename" quando si utilizza FileSystemResource per forzare un file di download del file?
L'azione si presenta come:
@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);
}
Anche se il file è un file zip in modo che il browser scarica sempre il file, ma vorrei citare esplicitamente il file come allegato, e anche fornire un nome di file che ha niente a che fare con il nome reale dei file.
Potrebbero esserci soluzioni alternative per questo problema, ma mi piacerebbe conoscere il modo corretto Spring e FileSystemResource
per raggiungere questo obiettivo.
P.S. Il file che viene utilizzato qui è un file temporaneo, contrassegnato per l'eliminazione quando esiste la JVM.
Ma si noti che questo si interromperà se il nome file contiene caratteri non "token", come spazi bianchi, non ASCII e determinati delimitatori. –
risposta breve 'response.setHeader (" Content-Disposition "," attachment; filename = "+ YOUR_FILE_NAME);' –
Evita risposte di solo codice. Fornisci alcune spiegazioni sullo snippet! – Manu343726