2016-08-04 2 views
-1

Добрый день. Я импортировал org.apache.commons.net.ftp.FTP в свой проект, и мне пришлось столкнуться с некоторыми проблемами при загрузке zip-файла на FTP. Когда он загружает небольшой файл (< 100MB), он отлично работает. Но когда дело доходит до более крупного файла (> 500 МБ), он останавливается там, не возвращаясь и не выполняя оставшуюся операцию, даже если файл передается на сервер. И как функция/FTP подтверждают, когда передача выполнена? Есть все равно, чтобы проверить это?Java FTP Upload Завершено, но не возвращается

public class zipFTP 
{ 
public boolean uploadFile(String ht, String usr, String ps, String fpath, String uploadloc) 
{ 
    FTPClient client = new FTPClient(); 
    FileInputStream fis = null; 
    writeLog nLog = new writeLog(); 
    String channel = "FTP"; 
    boolean completed = false; 
    //client.setBufferSize(1048576); 
    client.setControlKeepAliveReplyTimeout(300); 

    //System.out.println(client.getBufferSize()); 
    try 
    { 
     nLog.writeToLog(dumptoFTP.filename, channel, "Uploading..."); 

     client.connect(ht); 
     client.login(usr, ps); 
     client.enterLocalPassiveMode(); 
     client.setFileType(FTP.BINARY_FILE_TYPE); 

     fis = new FileInputStream(fpath); 
     completed = client.storeFile(uploadloc, fis); 
     //client.completePendingCommand(); //to complete the transaction entirely 
     if(completed) 
     { 
     if (dumptoFTP.isSysLog) 
      System.out.println("File uploaded"); 
      nLog.writeToLog(dumptoFTP.filename, channel, "File uploaded"); 
     } 

     fis.close(); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
     if (dumptoFTP.isSysLog) 
      System.out.println("Upload failed"); 
     nLog.writeToLog(dumptoFTP.filename, channel, "Upload failed"); 
     nLog.writeToLog(dumptoFTP.filename, channel, e.toString()); 
    } 
    finally 
    { 
     try 
     { 
      if(client.isConnected()) 
      { 
       client.logout(); 
       client.disconnect(); 
      } 
     } 
     catch (IOException ex) 
     { 
      ex.printStackTrace(); 
     } 
    } 

    return completed; 
} 

}

+0

что вы имеете в виду 'не returning' является блокировал где-то, и если да, то где? Основная отладка. –

+0

Как я уже сказал, если он переносит небольшой файл, он работает. Но когда дело доходит до более крупного файла, оно останавливается там, даже если файл полностью переносится. – Myiosus

+0

где он останавливается? –

ответ