java通过IO流实现文件下载

//通过文件id查询数据库中文件存储路径,再通过io流将其转换成二进制文件下载

    /**
     * 文件下载
     *
     * @param fileId
     */
    @Override
    public void downloadMaterial(Long fileId, HttpServletResponse response) {
        //根据文件id获取文件存储地址
        MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>();
        wrapper.eq(SysFileEntity::getId, fileId);
        SysFileEntity commonSysFile = this.selectJoinOne(SysFileEntity.class,wrapper);
        //下载文件
        // 获取文件上传盘
        String disk = iSysConfigService.selectConfigByKey(DISK);
        if (StringUtils.isBlank(disk)) {
            throw new ServiceException("获取文件下载地址失败,请配置文件下载地址");
        }
        //文件存储路径
        String filePath = disk + commonSysFile.getFilePath().substring(1);
        File file = new File(filePath);
        if (!file.exists()) {
            throw new ServiceException("文件不存在");
        }
        try {
            // 设置响应

你可能感兴趣的:(java,postman)