2014-10-20 3 views
-1

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에서 파일을 다운로드 할 때 디코딩에 문제가 없습니다. 리눅스 서버에서 프로그램을 실행할 때이 문제가 나타납니다.

+0

IOUtils.copy가 반환 한 int 값을 가져 와서 예상 바이트 수와 같으면 확인할 수 있습니까? –

+0

코드의 관련 비트가 누락되었다고 가정합니다. 바이너리 파일을 전송하려하지만 FTPClient가 텍스트 파일을 전송하도록 설정되어있을 수 있습니까? FTPClient.setFileType (...)? – jarnbjo

+0

@jarnbjo pgp 파일을 전송할 때 파일 형식을 어떻게 설정해야합니까? – Narges

답변

0

내 문제를 발견했습니다! 문제는 원격 경로를 다루는 것과 같습니다. 바보 같은 실수입니다! 그래서이 문제가 발생하면 다시 점검하고 주소를 다시 확인하십시오.