猿问

如何下载正在上传的文件

我正在开发excel文件的上传功能,在解析上传的excel文件并修改Workbook中的一些值后,如何下载Workbook?下面是我的上传界面:


public void batchImport(HttpServletResponse response, MultipartFile file) {

    String fileName = file.getOriginalFilename();

    boolean isExcel2003 = true;

    if (fileName.matches("^.+\\.(?i)(xlsx)$")) {

      isExcel2003 = false;

    }

    InputStream is = file.getInputStream();

    if (isExcel2003) {

      Workbook wb = new HSSFWorkbook(is);

    } else {

      Workbook wb = new XSSFWorkbook(is);

    }

    // some logic to handle wb


    // download an excel by the Workbook

    response.setHeader("content-Type", "application/vnd.ms-excel");

    response.setHeader(

        "Content-Disposition",

        "attachment;filename="

            + URLEncoder.encode(fileName, "utf-8").replaceAll("\\+", "%20").replaceAll("_", "\\/"));

    wb.write(response.getOutputStream()); 

}

我在下载线上调试它,wb值是正确的,没有错误,但没有下载任何东西。我该如何修改它?


开满天机
浏览 83回答 1
1回答

动漫人物

@PostMapping(value = Mappings.UPLOAD)@ResponseBodypublic void upload( MultipartFile file, HttpServletResponse response)void 方法没有返回类型,因此没有响应主体。您需要指定返回类型(例如 ResponseEntity)并返回一个值。或者删除 ResponseBody 注释。
随时随地看视频慕课网APP

相关分类

Java
我要回答