java - Use FTP4J to resume upload progress and also get how many percent uploaded -


any 1 have example how upload ftp4j support resume , how show progress bar?

i have implemented sort of following code.

i discovered if use compressed streams, cannot rely on transferred bytes reported listener, because server can wait further data in order decode previous received blocks.

hovewer, if streams plains, in cases of lost connection still cannot rely on total transferred bytes reported listener. so, realized best way ask server how many bytes received.

in template, temporal redundancy more general , involves control connection ftp server. limit while loop data connection, i.e. upload.

ftpclient ftpclient = null; long writtenbytes; boolean iscompletedstartingdelete = false; // our policy overwrite @ first (int attempt = 0; attempt < max_attempts; attempt++) {    try {       ftpclient = getftpclient();       configureftpclient(ftpclient);       dologin(ftpclient);         ftpclient.changedirectory(remotedirectory);        if (!iscompletedstartingdelete) { // our policy overwrite @ first          try {              ftpclient.deletefile(file);              iscompletedstartingdelete = true;          } catch (ftpexception e) {              // maybe should check if exception thrown file not existing.              iscompletedstartingdelete = true;          }       }        try {           writtenbytes = ftpclient.filesize(filename);       } catch (exception e) {           writtenbytes = 0;       }        if (ftpclient.isresumesupported()) {          // template use append          ftpclient.upload(file, writtenbytes, listener);       } else {          ftpclient.upload(file, listener);       }      } catch (ftpabortexception e) {       // user aborted operation       break;    } catch (exception e) {       if (attempt == max_attempts) { // or in general lastloop          throw e;       } else {          // mask failure          // log       }    } {       if (ftpclient != null && ftpclient.isconnected()) {          try { ftpclient.disconnect(); } catch (throwable t) { /* log */ }     }   } 


Comments

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -