亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring構建CSV字符串并用它下載文件

Spring構建CSV字符串并用它下載文件

海綿寶寶撒 2023-03-31 14:41:28
我想要的是當我訪問/getcsv下載一個csv file@RequestMapping(value = "/getcsv", method = RequestMethod.GET)public void getCSV(HttpServletResponse response){    String csv = "a,b";    response.setContentType("text/csv");    //what to do now?}我不知道如何激發csv file包含我的字符串的下載。
查看完整描述

2 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

您可以在響應的輸出流中寫入數據。


    @RequestMapping(value = "/getcsv", method = RequestMethod.GET)

    public void getCSV(HttpServletResponse response){


        String csv = "a,b";

        response.setContentType("application/octet-stream");

        response.setHeader("Content-Disposition", "fileName.csv");

        response.setHeader("Access-Control-Expose-Headers","Authorization, Content-Disposition");

        try (PrintWriter pw = new PrintWriter(response.getOutputStream())) {

            pw.write(csv);

        }

    }


查看完整回答
反對 回復 2023-03-31
?
弒天下

TA貢獻1818條經驗 獲得超8個贊

您可以嘗試以下代碼。


@PostMapping(value = "/getcsv", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)

  public ResponseEntity<?> downloadFile(@RequestParam("fileName") String fileName) {

    String dirPath = "E:/some-directory-path/";

    byte[] fileBytes = null;

    try {

      fileBytes = Files.readAllBytes(Paths.get(dirPath + fileName));

    } catch (IOException e) {

      e.printStackTrace();

    }

    return ResponseEntity.ok()

        .contentType(MediaType.APPLICATION_OCTET_STREAM)

        .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + fileName + "\"")

        .body(fileBytes);

  }

您必須設置為 Application Octet Stream 才能下載任何文件。


查看完整回答
反對 回復 2023-03-31
  • 2 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號