wrongwrongな開発日記

しんまいさんの忘備録

【プログラミング】何かをダウンロードするようなエンドポイントで、Edgeでのみダウンロードにならなかった話

問題

CSVをダウンロードさせるようなエンドポイントを立てた時、ChromeFireFoxではダウンロードになるのに、Edgeでのみダウンロードにならないという状況が発生しました。

問題のコード

エンドポイントのコードは以下です。フレームワークはSpringBootです。

@GetMapping(value = "/api/csv-all", produces = "text/csv")
public void allCsv(
        @RequestParam("id") Integer id,
        HttpServletResponse response
) {
    response.setCharacterEncoding(CSVCharset);

    response.setHeader(
            "Content-Disposition",
            "attachement;filename=\"" + createFilename(i) + "\""
    );

// 以下省略

原因

実は以下の部分にtypoがありました。これを直せばEdgeでもダウンロードになりました1

    response.setHeader(
            "Content-Disposition",
            // attachementが正しい綴り!
            "attachement;filename=\"" + createFilename(i) + "\""
    );

  1. この修正でFireFoxでもダウンロードするファイル名が変わりました。