ServletOutputStreamからファイルを送信するためにCSVを開くのを使用します

StackOverflow https://stackoverflow.com//questions/25067212

  •  23-12-2019
  •  | 
  •  

質問

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();
}
.

役に立ちましたか?

解決

サーブレットからユーザーにファイルを送信するために何をしなければなりませんか?

  1. content-typeを設定します。
  2. バイトを書き出します。
  3. あなたがこれをやっているようですが、間違った順序で。また、アプリケーション/オクテットストリームを使用するのではなく、実際にブラウザに指示したい場合があります。これは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();
    
    .

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top