daily pastebin goal
11%
SHARE
TWEET

Untitled

a guest May 16th, 2018 101 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. *   Upload files to the server using HTML 5 Drag and drop the folders on your local computer
  3. *
  4. *   Tested on:
  5. *   Mozilla Firefox 3.6.12
  6. *   Google Chrome 7.0.517.41
  7. *   Safari 5.0.2
  8. *   Safari na iPad
  9. *   WebKit r70732
  10. *
  11. *   The current version does not work on:
  12. *   Opera 10.63
  13. *   Opera 11 alpha
  14. *   IE 6+
  15. */
  16. var x = false;
  17. function uploadFile(e) {
  18.     AJAXFileUpload(document.getElementById("drop").value);
  19. }
  20.  
  21. function AJAXFileUpload(file){
  22.     var ajaxRequest;  // The variable that makes Ajax possible!
  23.  
  24.     try{
  25.         // Opera 8.0+, Firefox, Safari
  26.         ajaxRequest = new XMLHttpRequest();
  27.     } catch (e){
  28.         // Internet Explorer Browsers
  29.         try{
  30.             ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  31.         } catch (e) {
  32.             try{
  33.                 ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
  34.             } catch (e){
  35.                 // Something went wrong
  36.                 alert("Your browser broke!");
  37.                 return false;
  38.             }
  39.         }
  40.     }
  41.     // Create a function that will receive data sent from the server
  42.     ajaxRequest.onreadystatechange = function(){
  43.         if(ajaxRequest.readyState == 4){
  44.             document.getElementById("content").innerHTML = ajaxRequest.responseText;
  45.         }
  46.     }
  47.     ajaxRequest.open("POST", "./refreshprojects.php", true);
  48.     ajaxRequest.send(null);
  49. }
  50.  
  51. function uploader(place, status, targetPHP, show) {
  52.     var name2;
  53.     // Upload image files
  54.     upload = function(file, name, doel) {
  55.    
  56.         // Firefox 3.6, Chrome 6, WebKit
  57.         if(window.FileReader) {
  58.                
  59.             // Once the process of reading file
  60.            
  61.                 this.loadEnd = function() {
  62.                     bin = reader.result;               
  63.                     xhr = new XMLHttpRequest();
  64.                     xhr.open('POST', targetPHP+'?up=true', true);
  65.                     var boundary = 'xxxxxxxxx';
  66.                     var body = '--' + boundary + "\r\n";  
  67.                     body += "Content-Disposition: form-data; name='upload'; filename='" + file.name + "'\r\n";  
  68.                     body += "Content-Type: application/octet-stream\r\n\r\n";  
  69.                     body += bin + "\r\n";  
  70.                     body += '--' + boundary + '--';      
  71.                     xhr.setRequestHeader('content-type', 'multipart/form-data; boundary=' + boundary);
  72.                     // Firefox 3.6 provides a feature sendAsBinary ()
  73.                     if(xhr.sendAsBinary != null) {
  74.                         xhr.sendAsBinary(body);
  75.                     // Chrome 7 sends data but you must use the base64_decode on the PHP side
  76.                     } else {
  77.                         xhr.open('POST', targetPHP+'?up=true&base64=true&name='+name+'&doel='+doel, true);
  78.                         xhr.setRequestHeader('UP-FILENAME', file.name);
  79.                         xhr.setRequestHeader('UP-SIZE', file.size);
  80.                         xhr.setRequestHeader('UP-TYPE', file.type);
  81.                         xhr.send(window.btoa(bin));
  82.                         if (x == true) {
  83.                         $("#notification").html("Project toegevoegd");
  84.                         $("#notification").fadeIn().delay(2000).fadeOut();
  85.                         x = false;
  86.                         }
  87.                         //setInterval(refreshProjects(), 500);
  88.                     }
  89.                     if (show) {
  90.                         var newFile  = document.createElement('div');
  91.                         newFile.innerHTML = 'Loaded : '+file.name+' size '+file.size+' B';
  92.                         //document.getElementById(show).appendChild(newFile);              
  93.                     }
  94.                     alert(status);
  95.                     if (status) {
  96.                         //document.getElementById(status).innerHTML = 'Loaded : 100%<br/>Next file ...';
  97.                         alert("Test");
  98.                     }
  99.                    
  100.                 }
  101.                
  102.                 // Loading errors
  103.                 this.loadError = function(event) {
  104.                     switch(event.target.error.code) {
  105.                         case event.target.error.NOT_FOUND_ERR:
  106.                             document.getElementById(status).innerHTML = 'File not found!';
  107.                         break;
  108.                         case event.target.error.NOT_READABLE_ERR:
  109.                             document.getElementById(status).innerHTML = 'File not readable!';
  110.                         break;
  111.                         case event.target.error.ABORT_ERR:
  112.                         break;
  113.                         default:
  114.                             document.getElementById(status).innerHTML = 'Read error.';
  115.                     }  
  116.                 }
  117.            
  118.                 // Reading Progress
  119.                 this.loadProgress = function(event) {
  120.                     if (event.lengthComputable) {
  121.                         var percentage = Math.round((event.loaded * 100) / event.total);
  122.                         document.getElementById(status).innerHTML = 'Loaded : '+percentage+'%';
  123.                     }              
  124.                 }
  125.                    
  126.                 /* Preview images
  127.                 this.previewNow = function(event) {    
  128.                     bin = preview.result;
  129.                     var img = document.createElement("img");
  130.                     img.className = 'addedIMG';
  131.                     img.file = file;  
  132.                     img.src = bin;
  133.                     document.getElementById(show).appendChild(img);
  134.                 }*/
  135.  
  136.             reader = new FileReader();
  137.             // Firefox 3.6, WebKit
  138.             if(reader.addEventListener) {
  139.                 reader.addEventListener('loadend', this.loadEnd, false);
  140.                 if (status != null)
  141.                 {
  142.                     reader.addEventListener('error', this.loadError, false);
  143.                     reader.addEventListener('progress', this.loadProgress, false);
  144.                 }
  145.            
  146.             // Chrome 7
  147.             } else {
  148.                 reader.onloadend = this.loadEnd;
  149.                 if (status != null)
  150.                 {
  151.                     reader.onerror = this.loadError;
  152.                     reader.onprogress = this.loadProgress;
  153.                 }
  154.             }
  155.             var preview = new FileReader();
  156.             // Firefox 3.6, WebKit
  157.             if(preview.addEventListener) {
  158.                 preview.addEventListener('loadend', this.previewNow, false);
  159.             // Chrome 7
  160.             } else {
  161.                 preview.onloadend = this.previewNow;
  162.             }
  163.            
  164.             // The function that starts reading the file as a binary string
  165.             reader.readAsBinaryString(file);
  166.              
  167.             // Preview uploaded files
  168.             if (show) {
  169.                 preview.readAsDataURL(file);
  170.             }
  171.            
  172.             // Safari 5 does not support FileReader
  173.            
  174.             } else {
  175.                 xhr = new XMLHttpRequest();
  176.                 xhr.open('POST', targetPHP+'?up=true', true);
  177.                 xhr.setRequestHeader('UP-FILENAME', file.name);
  178.                 xhr.setRequestHeader('UP-SIZE', file.size);
  179.                 xhr.setRequestHeader('UP-TYPE', file.type);
  180.                 xhr.send(file);
  181.                
  182.                 if (status) {
  183.                     document.getElementById(status).innerHTML = 'Loaded : 100%';
  184.                 }
  185.                 if (show) {
  186.                     var newFile  = document.createElement('div');
  187.                     newFile.innerHTML = 'Loaded : '+file.name+' size '+file.size+' B';
  188.                     document.getElementById(show).appendChild(newFile);
  189.                 }  
  190.             }
  191.        
  192.     }
  193.  
  194.     // Function drop file
  195.     this.drop = function(event) {
  196.         if (window.confirm("Weet u zeker dat u deze actie wilt doen?")) {
  197.             event.preventDefault();
  198.             var dt = event.dataTransfer;
  199.             var files = dt.files;
  200.             var doel = this.id;
  201.             x = true;
  202.             name2 = Math.floor(Math.random()*100000000);
  203.             for (var i = 0; i<files.length; i++) {
  204.                 var file = files[i];
  205.                 alert(file.name);
  206.                 upload(file, name2, doel);
  207.             }
  208.         }
  209.     }
  210.    
  211.     // The inclusion of the event listeners (DragOver and drop)
  212.         var count = document.getElementsByClassName('imagedrop').length;
  213.         for (var i = 0; i < count; i++){
  214.             this.uploadPlace = document.getElementsByClassName('imagedrop')[i];
  215.             this.uploadPlace.addEventListener("dragover", function(event) {
  216.                 event.stopPropagation();
  217.                 event.preventDefault();
  218.             }, true);
  219.             this.uploadPlace.addEventListener("drop", this.drop, false);
  220.         }
  221.  
  222. }
  223.  
  224. function refreshProjects(){
  225.     var ajaxRequest;  // The variable that makes Ajax possible!
  226.    
  227.     try{
  228.         // Opera 8.0+, Firefox, Safari
  229.         ajaxRequest = new XMLHttpRequest();
  230.     } catch (e){
  231.         // Internet Explorer Browsers
  232.         try{
  233.             ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  234.         } catch (e) {
  235.             try{
  236.                 ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
  237.             } catch (e){
  238.                 // Something went wrong
  239.                 alert("Your browser broke!");
  240.                 return false;
  241.             }
  242.         }
  243.     }
  244.     // Create a function that will receive data sent from the server
  245.     ajaxRequest.onreadystatechange = function(){
  246.         if(ajaxRequest.readyState == 4){
  247.             document.getElementById("content").innerHTML = ajaxRequest.responseText;
  248.         }
  249.     }
  250.     ajaxRequest.open("POST", "./refreshprojects.php", true);
  251.     ajaxRequest.send(null);
  252. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top