Prikaz progresa u procentima kod upload preko AJAX

Prikaz progresa u procentima kod upload preko AJAX

offline
  • Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
  • Pridružio: 13 Jun 2010
  • Poruke: 307
  • Gde živiš: Subotica

POšdrav svima, imam jednu funkciju za upload preko AJAX i jQuery koju sam napravio ali imam problem da prikažem procentualno koliko je vremena ostalo da se fajl preuzme. Da li neko zna kako se to radi?

Moja skripta:
$(function(){          $("#load").load("components/dashboard/options/documents/list.php");           $("#save-click").click(function(){          $("#error").html("<span style=\"color:blue\">Upload may take a while, please be patient and do not close the window.</span><br><div style=\"height:20px; width:50px; background:url(images/imagesfancybox_loading.gif) no-repeat center center;\"></div>");          var formObj = $("#new");          var formURL = formObj.attr("action");          var formData = $("#new")[0];          var formData = new FormData(formData);          $.ajax({             url: formURL,             type: "POST",             data: formData,             mimeType: "multipart/form-data",             contentType: false,             cache: false,             processData: false,             statusCode:{                404: function(){$("#error").html("ERROR 404 - File for checking login data not found.");},                401: function(){$("#error").html("ERROR 401 - You don\'t have permission to access to this option.");},                408: function(){$("#error").html("ERROR 408 - Request timeout.");},                500: function(){$("#error").html("ERROR 500 - Internal server error.");}             },             success: function(data, textStatus, jqXHR)             {                if($.trim(data)==="true")                {                   $("#title").val("");                   $("#file").val("");                   $("#error").html("");                   $("#load").html("<div style=\"height:20px; width:50px; background:url(images/imagesfancybox_loading.gif) no-repeat center center;\"></div>");                   $("#load").delay(300).load("components/dashboard/options/documents/list.php");                }                else                {                   $("#error").html("<p style=\"color:#f00\">" + data + "</p>");                }             },             error: function(jqXHR, textStatus, errorThrown){                $("#error").html("<p style=\"color:#f00\">" + errorThrown + "</p>");             }          });       });    });
Još učim jQuery ali ovo je neko moje rešenje koje perfektno radi, samo korisnici nikada neznaju koliko vremena im je ostalo kada postavljaju fajlove veće od 10MB a nekada se aplouduje i preko 200MB.

Hvala!



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Ja sam to davno ali bas davno radio. Koliko se secam uzmes informacije o velicini fajla i sve u postfiksnoj formi inkrementiras kroz while sa obicnom time classom iz JS.

var uploadedSoFar = uploadSpeed * (Date.now() - timeStarted.milliseconds) / 1000; var timeRemaining = ((fileSize - uploadedSoFar) / uploadSpeed) + ' seconds';

Evo i nekog gotovog resenja:

http://speedof.me/api.html
http://jsfiddle.net/ThinkingStiff/z8KXd/



offline
  • Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
  • Pridružio: 13 Jun 2010
  • Poruke: 307
  • Gde živiš: Subotica

Ovo je zanimljivo ali ne razumem kako da implementiram u svoj jQueri. Kako da indentifikujem moju formu koju pratim i div gde želim da upišem?

offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Pa ti u JQ mozes da pozivas JavaScript bez problema. Za identifikaciju koristi selektore iz JQ

offline
  • Web Designer, PHP Developer; HTML, CSS, SQL, jQuery Programmer
  • Pridružio: 13 Jun 2010
  • Poruke: 307
  • Gde živiš: Subotica

Mislim da razumem, JS pogleda veličinu fajla, brzinu internet konekcije i napravi prekalkulaciju koju sa loop odbrojava i prikazuje u procentima?

Ko je trenutno na forumu
 

Ukupno su 957 korisnika na forumu :: 23 registrovanih, 3 sakrivenih i 931 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Arsenije, Boris BM, ikan, jackreacher011011, Još malo pa deda, Kibice, krkalon, Kubovac, Marko Marković, Mercury, mkukoleca, nenad81, repac, ruma, sevenino, Shinobi, sosko, Srle993, stegonosa, stokssone, vandrej, vasa.93