Тема: загрузка файла в режиме реального времени с использованием Node.js
Привет всем, я работаю над реальным файлом upload
с использованием Node.js
, и я столкнулся с ошибкой в приведенном ниже коде:
function handleFile(files) {
if (!files.length) {
return;
}
var file = files[0];
var reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onprogress = function (e) {
dragZone.removeClass( 'is-uploading' );
dragZone.removeClass( 'is-error' );
dragZone.addClass( 'is-success' );
if (e.lengthComputable) {
var percentComplete = (e.loaded / e.total)*100;
percentComplete = parseInt(percentComplete);
//Do something with upload progress
console.log(percentComplete);
$('#status').text(percentComplete+'%');
$('.progress-bar').text(percentComplete+'%');
$('#progressBar').val(percentComplete);
//console.log(e.loaded+ " / " + e.total)
}
}
reader.onload = function(e) {
var data = e.target.result;
//Error-facing
window.crypto.subtle.digest({name: 'SHA-256'}, data).then(function(hash) {
var hexString = '';
var bytes = new Uint8Array(hash);
for (var i = 0; i < bytes.length; i++) {
var hex_i = bytes[i].toString(16);
hexString += hex_i.length === 1 ? '0' + hex_i : hex_i;
}
$('#hash').text(hexString);
calculatedHash = hexString;
dragZone.removeClass( 'is-uploading' );
dragZone.removeClass( 'is-error' );
dragZone.addClass( 'is-success' );
}).catch(function(e) {
showError(e);
});
};
Кто-нибудь, пожалуйста, сообщите мне, как решить эту ошибку:
index.js:138 Uncaught TypeError: Cannot read property 'digest' of undefined
at FileReader.reader.onload
Нет данных, передаваемых в эту хеш-переменную ниже указанной строки:
window.crypto.subtle.digest({name: 'SHA-256'}, data).then(function(hash)