2014-01-08 3 views
1

Как я могу получить доступ к двоичному с JavaScript из файла загруженного с входом файла ?:Получить значение входного файла как двоичные данные

<input type="file" name="file"> 

я могу получить доступ к детали загруженного файла успешно с:

$('[name="image"]').get(0).files[0].name 
// "2013-10-19 15.10.59.jpg" 

$('[name="image"]').get(0).files[0].size 
// 774016 

$('[name="image"]').get(0).files[0].type 
// "image/jpeg" 

Но не настоящее представление.

Я нашел this учебник, который использует:

document.getElementById("photo").files[0].getAsBinary() 

Однако этот метод не существует в моем браузере (Chrome Canary 34.0.1772.0 на OS X 10.9).

ответ

3

От https://developer.mozilla.org/en-US/docs/Web/API/File.getAsBinary

Нестандартное Эта функция является нестандартным и не на стандартах дорожки. Не используйте его на производственных площадках, обращенных к Интернету: он не будет работать для каждого пользователя. Также могут быть большие несовместимости между реализациями, и поведение может измениться в будущем.

Это предполагает:

Примечание: Этот метод является устаревшим; вы должны использовать метод FileReader readAsBinaryString() или readAsArrayBuffer().

Использование FileReader:

//Retrieve the first (and only!) File from the FileList object 
    var f = document.getElementById("photo").files[0]; 

    if (f) { 
     var r = new FileReader(); 
     r.onload = function(e) { 
      var contents = e.target.result; 
     alert("name: " + f.name + "n" 
       +"type: " + f.type + "n" 
       +"size: " + f.size + " bytesn" 
       + "starts with: " + contents 
     ); 
     } 
     r.readAsText(f); 

Однако, обратите внимание, что FileReader API еще рабочий проект, и поэтому это не будет работать во всех браузерах. Насколько мне известно, в настоящее время не поддерживается этот способ, вы можете посмотреть загрузку файла с помощью Ajax и чтение его содержимого на языке сервера?

+1

'readAsBinaryString()' устарел в соответствии с рабочим проектом от W3C от 12 июля 2012 года. – sk904861

0

Используйте метод readAsBinaryString из FileReader API

Смежные вопросы