ServletOutputStreamからファイルを送信するためにCSVを開くのを使用します
質問
POSTを使用してTomcatサーバに送信されたJSONオブジェクトを解析し、それをCSVファイルに変えました。CSVファイルをユーザーに送り返したいと思います。サーバーに保存されている実際のファイルを参照しています。伝えます。
//The doPost method has already generated the String[] - I then call generateCSV
protected void generateCSV(ArrayList<String[]> data, ServletOutputStream out,
HttpServletResponse response)
{
try{
BufferedWriter buff = new BufferedWriter(new OutputStreamWriter(out));
CSVWriter writer = new CSVWriter(buff);
writer.writeAll(data);
writer.close();
sendFile(response, out);
}catch(IOException | ServletException e){
e.printStackTrace();
}
}
protected void sendFile(HttpServletResponse response, ServletOutputStream outstream)throws ServletException, IOException
{
response.setContentType("application/octet-stream");
outstream.flush();
outstream.close();
}
. 解決
サーブレットからユーザーにファイルを送信するために何をしなければなりませんか?
- content-typeを設定します。
- バイトを書き出します。
あなたがこれをやっているようですが、間違った順序で。また、アプリケーション/オクテットストリームを使用するのではなく、実際にブラウザに指示したい場合があります。これはCSVです。あなたはそれにファイル名を与えたいかもしれません。
response.setContentType("text/csv");
response.setHeader("Content-Disposition","filename=whatever.csv");
BufferedWriter buff = new BufferedWriter(new OutputStreamWriter(out));
CSVWriter writer = new CSVWriter(buff);
writer.writeAll(data);
writer.close();
.所属していません StackOverflow