apache.commons.net.ftp.FTPClient를 사용하여 pgp 파일을 전송하려고하는데 결과가 성공적으로 표시되지만 txt 파일이 오류가 발생했습니다 : gpg : [알 수없는] : 잘못된 패킷 (ctb = 20)apache.commons.net을 사용하여 ftp 서버에서 pgp 파일을 불완전하게 다운로드했습니다.
정확한 크기를 확인할 때 크기가 약 1KB 미만인 것으로 나타났습니다. 원본 파일. 내 방식 또는 코드와 실수가 무엇
FileOutputStream fos = new FileOutputStream(Localfilename);
InputStream inputStream = ftpClient.retrieveFileStream(remoteFileDir);
IOUtils.copy(inputStream, fos);
fos.flush();
IOUtils.closeQuietly(fos);
IOUtils.closeQuietly(inputStream);
boolean commandOK = ftpClient.completePendingCommand();
이 하나가 이해할 수 : 여기
파일을 다운로드하는 코드?[편집 됨] 원래 파일 디코딩 (txt로 변환)이 성공적으로 이루어 졌으므로 파일을 다운로드하는 동안 문제가 발생합니다.
[편집 됨 2] Windows 바탕 화면에서 프로그램을 실행하고 Windows에서 파일을 다운로드 할 때 디코딩에 문제가 없습니다. 리눅스 서버에서 프로그램을 실행할 때이 문제가 나타납니다.
IOUtils.copy가 반환 한 int 값을 가져 와서 예상 바이트 수와 같으면 확인할 수 있습니까? –
코드의 관련 비트가 누락되었다고 가정합니다. 바이너리 파일을 전송하려하지만 FTPClient가 텍스트 파일을 전송하도록 설정되어있을 수 있습니까? FTPClient.setFileType (...)? – jarnbjo
@jarnbjo pgp 파일을 전송할 때 파일 형식을 어떻게 설정해야합니까? – Narges