2016-02-23 3 views
-2

Я хотел бы взять один большой файл в javascript и прочитать его байтом по байту и разделить каждый другой байт в один файл или другой, но я не могу даже распечатать один байт из. TXT файлFile Manipulation in Javascript

var control = document.getElementById("your-files"); 
files = control.files; 
len = files.length; 
var test = document.getElementById("test"); 
test.value = "Filename: " + files[0].name; 
test.value += "\n" + "Type: " + files[0].type; 
test.value += "\n" + "Size: " + files[0].size + " bytes"; 


var blob = files[0].slice(0, 1000); 
test.value += "\n" + blob; 

var myReader = new FileReader(); 
test.value += "\n" + myReader.readAsText(blob); 
test.value += "\n" + myReader.readAsBinaryString(blob); 

Я могу распечатать типа размера файла и имя, но при попытке напечатать блоб я получить его в списке только как объекта сгустка

пример

Filename: test.txt 
Type: text/plain 
Size: 9604 bytes 
[object Blob] 
undefined 

ответ

0

Все, что мне нужно сделать это, чтобы добавить создание файла теперь, когда я действительно могу использовать blobs.

function SplitFile(){ 

    var control = document.getElementById("your-files"); 
    files = control.files; 
    len = files.length; 

    var test = document.getElementById("test"); 
    var i = 0; 
    while (i < len){ 
     test.value += i + "\n"; 
     test.value += "Filename: " + files[i].name; 
     test.value += "\n" + "Type: " + files[i].type; 
     test.value += "\n" + "Size: " + files[i].size + " bytes"; 

     num_files = document.getElementById("piece-up").value; 
     test.value += "\n" + "Number of files: " + num_files; 

     var file_length = files[i].size; 
     var slice_size = 1000; 
     var remainder = file_length % slice_size; 
     var num_large = file_length - remainder; 
     var num_loops = num_large/slice_size; 
     var slice_0 = 0; 
     var slice_1 = slice_size; 
     var q = 0; 
     while(q< num_loops){ 
      var myReader = new FileReader(); 
      myReader.readAsText(files[i].slice(slice_0, slice_1)); 
      myReader.onload = function(event) { 
       var contents = event.target.result; 
       test.value += "\n" + contents; 
      }; 
      slice_0 = slice_0 + slice_size; 
      slice_1 = slice_1 + slice_size; 
      q++; 
     } 
     var myReader = new FileReader(); 
     slice_0 = slice_1 - slice_size; 
     slice_1 = slice_1 + remainder - slice_size; 
     myReader.readAsText(files[i].slice(slice_0, slice_1)); 
     myReader.onload = function(event) { 
      var contents = event.target.result; 
      test.value += "\n" + contents; 
     }; 
     i++; 
    } 
}