2016-03-23 9 views
0

Я хочу проверять файлы на стороне браузера перед загрузкой, затем контрольную сумму и сравнивать на стороне сервера, чтобы убедиться в ее соответствии. Но как я могу получить чистые двоичные данные файла и контрольную сумму? Я пробовал путь ниже, но не работает:Как проверить сумму загружаемого файла с помощью javascript?

let fileSelect = document.getElementById('file') 
let files = fileSelect.files 
let file = files[0] 

var r = new FileReader(); 
r.onload = function(){ console.log(r.result); }; 
r.readAsArrayBuffer(file); 
var file_sha1 = sha1(r.result) 
+0

Какова ваша функция 'sha1'? – jayms

+0

Проверьте этот вопрос здесь http://stackoverflow.com/questions/16505333/get-the-data-of-uploaded-file-in-javascript – lya

+0

@jayms, я использую эту библиотеку npm: https: //www.npmjs. ком/пакет/sha1 – Suge

ответ

3

Библиотека, которую вы используете, по-видимому, поддерживает только ввод строки. Найти двоичный вход в библиотеку. Например. js-sha1. И вы должны использовать его в обратном вызове.

var reader = new FileReader(); 
reader.onload = function (event) { 
    var file_sha1 = sha1(event.target.result) 
}; 
reader.readAsArrayBuffer(file);