Zip-файл поврежден при загрузке на сервер - PullRequest
2 голосов
/ 21 октября 2010

Моя java-программа загружает zip-файл из моей системы на FTP-сервер.uploadfile() - это функция, которая содержит код для загрузки.

uploadfile ("192.168.0.210", "muruganp", "vm4snk", "/ home / Admin / GATE521 / LN_RB_Semivalid2junk / Output /" "+ date + "_ RB1.zip", "/ fileserver / filesbackup / Emac /" + date + "_ RB1.zip");

public static boolean uploadfile(String server, String username,
        String Password, String source_file_path, String dest_dir) {
    FTPClient ftp = new FTPClient();
    try {
        int reply;
        ftp.connect(server);
        ftp.login(username, Password);
        System.out.println("Connected to " + server + ".");
        System.out.print(ftp.getReplyString());
        reply = ftp.getReplyCode();
        if (!FTPReply.isPositiveCompletion(reply)) {
            ftp.disconnect();
            System.err.println("FTP server refused connection.");
            return false;
        }
        System.out.println("FTP server connected.");
        InputStream input = new FileInputStream(source_file_path);
        ftp.storeFile(dest_dir, input);
        System.out.println(ftp.getReplyString());
        input.close();
        ftp.logout();
    } catch (Exception e) {
        System.out.println("err");
        e.printStackTrace();
        return false;
    } finally {
        if (ftp.isConnected()) {
            try {
                ftp.disconnect();
            } catch (Exception ioe) {}
        }
    }
    return true;
}

Файл zip, который у меня есть в моей системе, идеален,Но после того, как вы загрузили то же самое в расположение сервера, загрузили то же самое и распаковали, возникает проблема.«Файл поврежден» говорит об ошибке.Что я должен сделать, чтобы решить эту проблему.Пожалуйста, сообщите об этом.

Я подозреваю, что проблема будет что-то вроде передачи через режим ASCII.Это должно быть фактически передано через двоичный режим согласно этому ВОПРОС .Как добиться того же?Пожалуйста, сообщите.

Ответы [ 3 ]

5 голосов
/ 21 октября 2010

Используйте setFileType метод FTPClient, чтобы установить его на FTP.BINARY_FILE_TYPE перед загрузкой

5 голосов
/ 21 октября 2010

Лучше всего предположить, что при загрузке по FTP используется режим ascii, который повреждает двоичный файл, такой как zip.Проверьте это и, если это так, измените его в двоичный режим.

3 голосов
/ 25 июня 2012

Я просто использовал setFileType(FTP.BINARY_FILE_TYPE), чтобы решить это. Эта информация действительно полезна! Большое спасибо.

...