2021-05-03

SSM文件下载

  1. 获取下载文件位置所有信息
 @GetMapping("/downLoadFiles")
    public  String downLoadFiles(HttpServletRequest request, Model model){
//        读取保存文件的地址,获取名称
        String realPath = request.getServletContext().getRealPath("/upload");
        File savefile=new File(realPath);
        List<String> fileNames = new ArrayList<>();
        File[] files = savefile.listFiles();
        for (File file:files) {
            fileNames.add(file.getName());
        }
        model.addAttribute("fileNames",fileNames);
        return "downLoad";

    }
  1. 获取名字点击下载
    @GetMapping("/fileDownLoad/{fileName}")
    public ResponseEntity downLoad(@PathVariable("fileName") String fileName,HttpServletRequest request) throws IOException {
        String realPath = request.getServletContext().getRealPath("/upload");
        HttpHeaders headers = new HttpHeaders();
//        以流的形式下载
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
//        用户手动下载而不是自动下载
        headers.setContentDispositionFormData("attachment",fileName);
       return new ResponseEntity<>(
               FileUtils.readFileToByteArray(new File(realPath,fileName))//把要下载的文件以ByteArray形式返回
               ,headers,//我们自定义响应头信息
               HttpStatus.OK);//状态码


    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值