项目背景:java语言,使用springboot集成X-File,配置了minio,ftp。
问题描述:
1、使用ftp下载文件时遇到第一个文件下载成功,第二个文件为空的问题
2、解决第二个问题后,文件上传至minio时,从第二个文件开始后面多个文件损坏
解决办法:
1:代码中添加
InputStream inputStream = ftpClient.retrieveFileStream(fileName);
//todo
inputStream.close();
ftpClient.completePendingCommand();
首先关闭流;completePendingCommand()
方法会发送一个命令到 FTP 服务器,然后等待服务器的响应。如果服务器返回的响应表示命令执行成功,那么这个方法会返回 true;否则返回 false。
在方法内部,它调用了 this.getReply()
方法来获取服务器的响应,然后使用 FTPReply.isPositiveCompletion()
方法来判断响应是否表示命令执行成功。
这个方法通常用于确保文件传输的完整性,例如在上传或下载文件后,可以调用这个方法来确认文件传输已经完成。
2:设置ftp的文件类型
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
在FTP协议中,常见的文件类型有ASCII文件类型和二进制文件类型。ASCII文件类型用于传输文本文件,而二进制文件类型用于传输非文本文件,如图像、音频等二进制文件。