...
Pobieranie pliku
Klasa com.suncode.pwfl.web.support.io.DownloadResource ułatwia stworzenie serwletu do pobierania pliku, dbając o ustawienie odpowiednich nagłówków odpowiedzi HTTP:
- Content-Disposition - nagłówek zawierający nazwę pliku (nazwa pliku może zawierać również znaki UTF-8)
- Content-Type - typ pliku odczytany z rozszerzenia za pomocą JAF (JavaBeans Activation Framework)
- Content-Length - rozmiar pliku
W tym celu należy z dowolnej metody kontrolera Spring MVC (@Controller) zwrócić odpowiedni obiekt klasy DownloadResource. Zasób ten zostanie automatycznie przekazany do przeglądarki z odpowiednimi nagłówkami. Należy pamiętać o adnotacji @ResponseBody która musi być obecna na metodzie.
Poniżej znajduje się przykład takiego kontrolera wraz z przykładową odpowiedzią serwera.
Code Block | ||
---|---|---|
| ||
@Controller
@RequestMapping("/file")
public class DownloadFileServlet()
{
@RequestMapping( value = "download/{filePath}", method = RequestMethod.GET )
public @ResponseBody DownloadResource download( @PathVariable String filePath )
throws Exception
{
File file = new File(filePath);
return new DownloadResource( file );
}
} |
Nagłówek | Wartość |
---|---|
Content-Disposition | attachment; filename="Faktury_ca%C5%82o%C5%9B%C4%87.pdf"; filename*=UTF-8''Faktury_ca%C5%82o%C5%9B%C4%87.pdf |
Content-Length | 15913 |
Content-Type | application/pdf;charset=UTF-8 |