Guest User

Untitled

a guest
Nov 19th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. (function () {
  2. //"use strict";
  3. var chunk = 272144
  4. , file
  5. , output = document.querySelector('#output')
  6. , fileReader = new FileReader();
  7.  
  8. var fileChosen = function(evnt) {
  9. file = evnt.target.files[0];
  10. };
  11.  
  12. fileReader.onload = function(evnt) {
  13. var formData = new FormData();
  14. formData.append('name', file.name);
  15. formData.append('data', evnt.target.result);
  16. sendData(formData);
  17. };
  18.  
  19. var startUpload = function() {
  20. var formData = new FormData();
  21. formData.append('name', file.name);
  22. formData.append('size', file.size);
  23. sendData(formData);
  24. };
  25.  
  26. var sendChunk = function(offset) {
  27. console.log('sending chunk ', offset);
  28. var place = offset * chunk; //The Next Blocks Starting Position
  29. var blob = new Blob([file], {"type" : file.type});
  30. var nFile = blob.slice(place, place + Math.min(chunk, (file.size-place)));
  31. fileReader.readAsBinaryString(nFile);
  32. };
  33.  
  34. var sendData = function(formData) {
  35. var xhr = new XMLHttpRequest();
  36. xhr.open('POST', '/upload', true);
  37. xhr.onload = function(e) {
  38. if (this.status == 200) {
  39.  
  40. if(this.response.slice(0,5) === 'chunk') {
  41. var part = parseInt(this.response.slice(5), 10);
  42. sendChunk(part);
  43. } else {
  44. console.log(this.response);
  45. }
  46.  
  47. }
  48. };
  49. xhr.send(formData);
  50. };
  51.  
  52. // var place = data.offset * chunk; //The Next Blocks Starting Position
  53. // var blob = new Blob([file], {"type" : file.type});
  54. // var nFile = blob.slice(place, place + Math.min(chunk, (file.size-place)));
  55. // fileReader.readAsBinaryString(nFile);
  56.  
  57. var progress = function(p) {
  58. var bar = document.querySelector('.bar');
  59. bar.style.width = p*100 + '%';
  60. bar.innerText = p*100 + '%';
  61. if(p==1) {
  62. bar.parentElement.className = 'progress progress-success progress-striped active';
  63. bar.innerText = 'Done !';
  64. }
  65. };
  66.  
  67. if(window.File && window.FileReader){
  68. document.querySelector('#submit').addEventListener('click', startUpload);
  69. document.querySelector('#file').addEventListener('change', fileChosen);
  70. } else {
  71. document.querySelector('#message').innerHTML = "Your Browser Doesn't Support The File API Please Update Your Browser";
  72. }
  73.  
  74. }());
Add Comment
Please, Sign In to add comment