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,398
    Thanks
    12
    Thanked 570 Times in 563 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,378
    Thanks
    11
    Thanked 592 Times in 572 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/9/03) IE7:0.1, IE8:4.6, IE11:9.1, IE9:3.1, IE10:3.0, FF:17.2, CH:46, SF:11.4, NON-MOUSE:38%

  • #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
    •