slim3のControllerでファイルダウンロード

slim3のControllerにアクセスしたとき、文字エンコードを指定してファイルをダウンロードする。

 

( run()メソッドの中で)

StringBuilder str = new StringBuilder();

str.append("hoge");

    (中略)

String encoding = "SJIS";
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "filename=ファイル名");
response.setCharacterEncoding(encoding); //getWriter()の前にエンコード指定
String res = new String( str.toString().getBytes(encoding),encoding);
response.getWriter().println(res);

return null;