Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
languagejava
@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łówekWartość
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