Hi umpirsky, Sorry, but I'm hard to run this code in my applet. In filePost.setRequestEntity(new UmpirskyRequestEntity( new MultipartRequestEntity(parts, filePost.getParams()), new UmpirskyProgressListener(this, (long)targetFile.length())));
in "this" I get the failure: symbol : constructor UmpirskyProgressListener(upload,long) location: class upload.UmpirskyProgressListener new UmpirskyProgressListener(this, (long)targetFile.length()))); Note: Some input files use unchecked or unsafe operations. I spend all my code. Thank you very much for your help! ... import umpirsky.UmpirskyRequestEntity.ProgressListener; import umpirsky.UmpirskyUploader; import umpirsky.UmpirskyRequestEntity; import umpirsky.UmpirskyProgressListener; ... String targetURL = "http://localhost/swfupload/demos/swfobjectdemo/upload.aspx"; PostMethod filePost = new PostMethod(targetURL); filePost.getParams().setBooleanParameter(HttpMethodParams.USE_EXPECT_CONTINUE,true); try { File targetFile = new File("C:\\temp\\pruebas\\1_MOV01114.rar"); // FICHERO UploadFichero.consola("Uploading #" + targetFileString + "# to " + targetURL); Part[] parts = {new FilePart("file", targetFile)}; //PARAMETROS filePost.setRequestEntity( new MultipartRequestEntity(parts, filePost.getParams()) ); HttpClient client = new HttpClient(); client.getHttpConnectionManager().getParams().setConnectionTimeout(50000); filePost.setRequestEntity(new UmpirskyRequestEntity( new MultipartRequestEntity(parts, filePost.getParams()), new UmpirskyProgressListener(this, (long)targetFile.length()))); ... public class UmpirskyProgressListener extends Observable implements ProgressListener { ... public UmpirskyProgressListener(UmpirskyUploader observer, long bytesToSend) { // for some reson, twice much bytes is sent to server, so this is ugly patch this.bytesToSend = 2 * bytesToSend; this.addObserver(observer); } ... public void transferred(long bytes) { this.setChanged(); System.out.println("progress="+((float) bytes/this.bytesToSend * 100)); //this.notifyObservers(); } } } umpirsky wrote: > > postMethod.setRequestEntity(new UmpirskyRequestEntity(new > MultipartRequestEntity(parts, postMethod.getParams()), new > UmpirskyProgressListener(this, bytesToSend))); > > and in my case UmpirskyProgressListener : > > > package umpirsky; > > import java.util.Observable; > > import umpirsky.UmpirskyRequestEntity.ProgressListener; > > public class UmpirskyProgressListener extends Observable implements > ProgressListener { > /** > * Number of bytes to send > */ > private long bytesToSend; > > /** > * Progress constructor > * > * @author Saša Stamenković <[email protected]> > * @param UmpirskyUploader observer applet is observer. monitors upload > progress > * @param long bytesToSend number of bytes that need to be sent > */ > public UmpirskyProgressListener(UmpirskyUploader observer, long > bytesToSend) { > // for some reson, twice much bytes is sent to server, so this > is ugly > patch > this.bytesToSend = 2 * bytesToSend; > this.addObserver(observer); > } > > /** > * Triggered on every byte sent > * > * @author Saša Stamenković <[email protected]> > * @param long bytes number of bytes sent > * @return void > */ > public void transferred(long bytes) { > this.setChanged(); > this.notifyObservers((float) bytes/this.bytesToSend * 100); > } > > } > > you can implement your own ProgressListener and do what is needed > there...in my case that is observable listener which notifies observer to > update GUI. > > Hope this helps, if not don't be hesitate to ask ;) > > > > soapergem wrote: >> >> umpirsky, >> >> Could you post a complete code example please? I am still not sure how to >> use this class. Thanks. >> >> Regards, >> >> Gordon >> >> >> umpirsky wrote: >>> >>> Cool, it works! >>> >>> Seems like number of bytes sent is about 2Xfile.lenght(). >>> >>> For file size 105542b it sends 211606b, >>> For file size 43062b it sends 86642b >>> >>> any explanation??? >>> >>> >>> Marcel Schiffel wrote: >>>> >>>> Hi, >>>> >>>> it's wrapped around another request entity, for example: >>>> >>>> PostMethod method = new PostMethod(...); >>>> FileRequestEntity fre = new FileRequestEntity(someFile, >>>> "contentType"); >>>> method.setRequestEntity(new CountingRequestEntity(fre, >>>> listener)); >>>> >>>> I've been able to use it with only minor changes (changed the type of >>>> the listener to ProgressHandle of the Netbeans Progress API). It's >>>> successfully counting the bytes sent, but I'm still not able to >>>> determine the total number of bytes that are sent, before executing the >>>> request. I'm therefore unable to tell the status bar what number of >>>> bytes is equivalent to 100%. Furthermore it is still not clear how to >>>> achieve the same thing when downloading a file (evaluating the response >>>> body stream). >>>> >>> >>> >> >> > > -- View this message in context: http://www.nabble.com/visualizing-upload-download-status-in-a-statusbar-tp19685137p23422418.html Sent from the HttpClient-User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
