Guest User

Untitled

a guest
May 16th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.40 KB | None | 0 0
  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. }
Add Comment
Please, Sign In to add comment