元サイト:Knife4jシリーズ--ダウンロードファイルの文字化け問題を解決_ITナイフ抜刀ブログ-CSDNブログ
序章
説明する
この記事では、ファイルをダウンロードする際にダウンロードボタンが表示されず文字化けしてしまう問題をKnife4jで解決する方法を紹介します。
関連URL
ファイルのダウンロードは常に Knife4j.txt · Issue #I374SP · Xiao Ming/knife4j - Gitee.com
知らせ
この問題は、Knife4j2.x バージョンで解決できます。OpenAPI3の仕様には生成するAPIインターフェースの記述がないため解決できません。したがって、knife4j-spring-boot-starter 依存関係 (バージョン 2.x) を使用することをお勧めしますが、knife4j-springdoc-ui 依存関係 (バージョン 3.x) を使用することは推奨されません。
問題の再発
SpringBoot では、応答フローを通じて Excel がエクスポートされ、結果は次のようになります (ダウンロード ボタンはなく、応答内容が直接文字化けします)。
解決
プロデュース = "application/octet-stream" を @ApiOperation アノテーションに追加します。
次のように:
@ApiOperation(value = "导出库存数据", produces = "application/octet-stream")
@PostMapping("exportStorage")
public void exportStorage(@RequestBody StorageQueryBO storageQueryBO) {
storageService.exportExcel(storageQueryBO);
}
結果
「ファイルをダウンロード」をクリックします