2010-10-20 3 views
2

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

uploadfile ("192.168.0.210", "muruganp", "vm4snk", "/ дома/Admin/GATE521/LN_RB_Semivalid2junk/выход /" + дата + "_ RB1.zip", "/ файловый_сервер/filesbackup/EMÀC /"+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; 
} 

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

Я подозреваю, что проблема будет что-то вроде переноса в режиме ASCII. Фактически это должно быть передано через двоичный режим согласно этому QUESTION. Как достичь того же? Пожалуйста, порекомендуйте.

ответ

5

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

+0

Как перейти в двоичный режим? Я новичок в java .. pls объясняет – LGAP

+0

@LGAP - Вам нужно будет показать больше кода, какой API вы используете для FTP? –

+0

уверен. Я обновил свой вопрос босса. – LGAP

5

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

3

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

 Смежные вопросы

  • Нет связанных вопросов^_^