sftp下载图片后对图片进行压缩,一直报异常,不知所措了,该如何优化并解决异常?(语言-java)

以下为发生异常代码块

     /**
     * sftp下载图片
     */
    private String sftpDownloadFile(SFTPUtils channelSftp, String fileUrl, Long processId, FileTypeEnum fileTypeEnum) {
        InputStream inputStream = null;
        Integer index = fileUrl.lastIndexOf("/");
        String fileDir = fileUrl.substring(0, index);
        String fileNameSftp = fileUrl.substring(index + 1, fileUrl.length());
        String ecmFileId;
        try {
            inputStream = channelSftp.downloadFile(fileDir, fileNameSftp);
            byte[] data = IOUtils.toByteArray(inputStream);
            // 超过600kb就压缩
            if (data.length / 1024 > maxImage) {
                ByteArrayOutputStream os = new ByteArrayOutputStream();
                Thumbnails.of(new ByteArrayInputStream(data)).size(600, 600).toOutputStream(os);
                data = os.toByteArray();
            }
            EcmResponse<String> result = ecmTemplate.upload().content(data).name(fileNameSftp).execute();
            if (result.getCode() != 0) {
                return StringUtils.EMPTY;
            }
            ecmFileId = result.getData();
        } catch (Exception e) {
            log.error("processId:{}, fileType:{},sftp下载文件异常了:", processId, fileTypeEnum.getFileCode(), e);
            return StringUtils.EMPTY;
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    log.error("downloadFile inputStream close IOException");
                }
            }
        }
        return ecmFileId;
    }

以下为详细异常信息

sftp下载文件异常了:
javax.imageio.IIOException: Error reading PNG image data
    at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1345)
    at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1614)
    at net.coobird.thumbnailator.tasks.io.InputStreamImageSource.read(Unknown Source)
    at net.coobird.thumbnailator.tasks.SourceSinkThumbnailTask.read(Unknown Source)
    at net.coobird.thumbnailator.Thumbnailator.createThumbnail(Unknown Source)
    at net.coobird.thumbnailator.Thumbnails$Builder.toOutputStream(Unknown Source)
    at com.vcredit.coop.service.impl.credit.CreditDownLoadImgServiceImpl.sftpDownloadFile(CreditDownLoadImgServiceImpl.java:206)
    at com.vcredit.coop.service.impl.credit.CreditDownLoadImgServiceImpl.downloadFile(CreditDownLoadImgServiceImpl.java:139)
    at com.vcredit.coop.service.impl.credit.CreditDownLoadImgServiceImpl.executeCredit(CreditDownLoadImgServiceImpl.java:78)
    at com.vcredit.coop.service.impl.credit.CreditExtendServiceImpl.recursionExecuteCredit(CreditExtendServiceImpl.java:304)
    at com.vcredit.coop.service.impl.credit.CreditExtendServiceImpl.lambda$pollingExecuteCredit$0(CreditExtendServiceImpl.java:257)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.EOFException: Unexpected end of ZLIB input stream
    at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:240)
    at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
    at java.io.DataInputStream.readFully(DataInputStream.java:195)
    at com.sun.imageio.plugins.png.PNGImageReader.decodePass(PNGImageReader.java:1119)
    at com.sun.imageio.plugins.png.PNGImageReader.decodeImage(PNGImageReader.java:1223)
    at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1338)
    ... 15 more