0

次の Java コードに問題があります。

    final FacesContext facesContext = FacesContext.getCurrentInstance();
    final ExternalContext externalContext = facesContext.getExternalContext();
    final HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();

    response.setContentType("text/plain; charset=ISO-8859-1");
    response.setHeader("Content-Disposition", "attachement;filename=result.csv");
    final OutputStream outputSteam = response.getOutputStream();

    CSVWriter writer = new CSVWriter(new OutputStreamWriter(outputSteam, "ISO-8859-1"), ';', '"');

    // Fill the csv file with something 

    writer.close();
    outputSteam.flush();
    outputSteam.close();

私はシステムを持っています。これは、MS Excel で参照する必要がある csv 形式にファイルをエクスポートすることができます。ユーザーがコンピューターのハードディスクに csv エクスポート ファイルを保存すると、表計算プログラムが自動的に起動しない場合があります。このように、ファイルは「result.csv」ファイルではなく、「result.csv.txt」ファイルです。しかし、なぜ?この問題は Firefox ブラウザでのみ発生し、IE では発生しません。

Javaコードに欠けているものはありますか? 特徴か何か?それとも、これは私のJavaコードによって引き起こされていない唯一のWindows内部の問題ですか?

手伝ってくれてありがとう !

グリーツ・マーウィーフ

4

1 に答える 1

0

ContentType を text/plain ではなく text/csv に設定してみてください。

また、CSV としての応答コンテンツ タイプも参照してください。

于 2013-08-22T06:52:27.020 に答える