Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 5 of 5
  1. #1
    New to the CF scene
    Join Date
    Jan 2011
    Posts
    8
    Thanks
    0
    Thanked 0 Times in 0 Posts

    file uploader progress bars

    Hi, I am trying to make a script that will upload files and show a progress bar and I've come so far that I can upload the file but the progress bar that appear for each file will not grow with green goo, you know?

    Please help!

    This is a drop box version:
    Code:
    window.onload = function()
    {
    	var dropzone = document.getElementById("dropArea");
    	dropzone.ondragover = dropzone.ondragenter = function(event)
    	{
    		event.stopPropagation();
    		event.preventDefault();
    	}
    
    	dropzone.ondrop = function(event)
    	{
    		event.stopPropagation();
    		event.preventDefault();
    
    		var filesArray = event.dataTransfer.files;
    		for (int i=0; i<filesArray.length; i++)
    		{
    			var progressDiv = document.getElementById('progressDiv');
    			var pbar = document.createElement('progress');
    			var br = document.createElement('br');
    			var report = document.createElement('div');
    			
    			pbar.setAttribute('id', 'progressBar' + i);
    			pbar.setAttribute('value', '0');
    			pbar.setAttribute('max', '100');
    			report.setAttribute('id', 'report' + i);
    			
    			progressDiv.appendChild(pbar);
    			progressDiv.appendChild(br);
    			progressDiv.appendChild(report);
    			progressDiv.appendChild(br);
    			
    			sendFile(filesArray[i]);
    		}
    	}
    }
    
    
    function sendFile(file)
    {
    	var uri = "upload.php";
    	var xhr = new XMLHttpRequest();
    	var fd = new FormData();
    
    	xhr.upload.addEventListener("progress", progressFunction, false);
    	
    	xhr.open("POST", uri, true);
    	xhr.onreadystatechange = function()
    	{
    		if (xhr.readyState == 4 && xhr.status == 200)
    		{
    			// Handle response.
    			//alert(xhr.responseText);
    			var percentageDiv = document.getElementById("report");
    			percentageDiv.innerHTML = 'Transfer complete';
    		}
    	}
    	fd.append('myFile', file);
    	// Initiate a multipart/form-data upload
    	xhr.send(fd);
    }
    
    
    function progressFunction(evt)
    {
    	var progressBar = document.getElementById('progressBar');
    	var percentageDiv = document.getElementById('report');
    	while(evt.lengthComputable)
    	{
    		progressBar.max = evt.total;
    		progressBar.value = evt.loaded;
    		percentageDiv.innerHTML = Math.round(evt.loaded / evt.total * 100) + "%";
    	}
    }
    Last edited by Gatsu; 12-04-2012 at 10:55 AM.

  • #2
    Senior Coder
    Join Date
    Dec 2010
    Posts
    2,395
    Thanks
    12
    Thanked 569 Times in 562 Posts
    With this line
    Code:
    var progressBar = document.getElementById('progressBar');
    you are trying to access a <progress> element with id="progressBar", but with this code
    Code:
    pbar.setAttribute('id', 'progressBar' + i);
    you created the <progress> elements with id="progressBar0", "progressBar1" etc. respectively. So there is no <progress> element with id="progressBar". The same can be applied to the <div> with id="report"

  • #3
    Senior Coder rnd me's Avatar
    Join Date
    Jun 2007
    Location
    Urbana
    Posts
    4,292
    Thanks
    10
    Thanked 583 Times in 564 Posts
    Quote Originally Posted by Gatsu View Post
    will not grow with green goo, you know?
    lol! best. question. ever. lovin it.
    my site (updated 13/9/26)
    BROWSER STATS [% share] (2014/5/28) IE7:0.1, IE8:5.3, IE11:8.4, IE9:3.2, IE10:3.2, FF:18.2, CH:46, SF:7.9, NON-MOUSE:32%

  • #4
    New to the CF scene
    Join Date
    Jan 2011
    Posts
    8
    Thanks
    0
    Thanked 0 Times in 0 Posts
    so I have to pass i to function progressFunction(evt)

    but now the script just decided not to work at all, when i drop files they open in my browser hmm... I changed nothing!

    my html is simple like this:

    Code:
    <script type="text/javascript" src="dropbox.js"></script>
    <div id="dropArea">Drop Area</div>
    <div id="progressDiv"></div>
    Might anybody know why this happened all of a sudden?

  • #5
    New to the CF scene
    Join Date
    Jan 2011
    Posts
    8
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Can it be because I'm now using notepad++ to edit this script?


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •