jakartaftpwrapper를 사용하여 JPG 업로드 JPG 업로드 - 파일을 읽을 수 없게 만듭니다.

StackOverflow https://stackoverflow.com/questions/1810309

  •  05-07-2019
  •  | 
  •  

문제

jakartaftpwrapper를 사용하여 클라이언트 Java 응용 프로그램에서 서버에 파일을 업로드했습니다 (백업 목적으로).

업로드 된 파일은 텍스트 파일, PNG 파일 및 JPG입니다.

로컬 컴퓨터에서 유효한 JPG 파일은 서버에서 (FTPD에서) 서버에서 읽을 수없는 (부패한 파일)가된다는 것을 알았습니다. 이미지 파일 크기는 원래 파일 크기와 비슷하지만 어떻게 든 결함이 있습니다.

다음은 JPG를 로컬 디스크에 작성하는 데 사용하는 코드입니다.

public static void writeJpeg(BufferedImage bfImg, String fileName, float quality) throws IOException{
FileImageOutputStream output = null;
try{
    Iterator iter = ImageIO.getImageWritersByFormatName("jpeg");
    ImageWriter writer = (ImageWriter)iter.next();
    ImageWriteParam iwp = writer.getDefaultWriteParam();
    iwp.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
    iwp.setCompressionQuality(quality);   // an integer between 0 and 1     
    File file = new File(fileName);
    output = new FileImageOutputStream(file);
    writer.setOutput(output);
    IIOImage image = new IIOImage(bfImg, null, null);
    writer.write(null, image, iwp);
}
finally{
    if (output != null){
        output.close();
    }
}

FTP 코드는 간단합니다.

JakartaFtpWrapper ftpClient = new JakartaFtpWrapper();
ftpClient.connectAndLogin(FTP_URL, FTP_USER, FTP_PASSWORD);
ftpClient.setPassiveMode(true);

File[] imageFiles = folder.listFiles()


  for (int j=0; j<imageFiles.length; j++){
        File imageFile = imageFiles[j];
        if (imageFile != null && imageFile.isFile() && (FileUtils.getFileSuffix(imageFile).equals("jpg") || FileUtils.getFileSuffix(imageFile).equals("png"))){ // upload only image files
            ftpClient.uploadFile(imageFile.getAbsolutePath(), imageFile.getName());
        }
    }

고마워요

도움이 되었습니까?

해결책

서버에서 실행되는 것은 무엇입니까? "Out Out Box"FTP 서버입니까 아니면 작성한 것입니까?

이미지는 이진 데이터입니다. jakartaftpwrapper가 FTP 전송을 이진 모드에 넣을 수있는 옵션을 제공하는 경우 그렇게해야합니다. 문제의 가장 큰 원인은 텍스트 모드에서 전송을 처리하려는 불이행 시도라고 생각합니다. 작은 이미지를 Bytewise 비교하면 캐리지 리턴이 표시됩니다 ((char) 0x0d == (char) 13) 옆에 추가되거나 제거됩니다. 0x0a'에스. 그렇다면 그것은 당신의 문제입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top