Java-Upload-JPG mit JakartaFtpWrapper - macht die Datei unlesbar

Ich habe JakartaFtpWrapper verwendet, um Dateien von der Client-Java-Anwendung auf meinen Server hochzuladen (zu Sicherungszwecken).

Die Dateien, die hochgeladen werden, sind Textdateien, PNG-Dateien und JPGs.

Ich habe festgestellt, dass die JPG-Dateien, die auf dem lokalen Computer gültig sind, auf dem Server (auf dem sie per FTP übertragen wurden) irgendwie unlesbar (beschädigte Dateien) werden. Die Größe der Bilddatei ähnelt der des Originals, ist jedoch irgendwie fehlerhaft.

Hier ist ein Code, mit dem ich das JPG auf die lokale Festplatte schreibe:

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();
    }
}

Der FTP-Code ist einfach:

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());
        }
    }

Danke, Ran

Antworten auf die Frage(1)

Ihre Antwort auf die Frage