Я использую каналы данных WebRTC для создания службы передачи файлов.
С небольшими файлами, до 30 Мб или около того, все идет неплохо. Прямо сейчас на принимающей стороне я просто сохраняю данные файла в памяти, когда все данные передаются, я сохраняю файл.
Вроде так:
//On the recieving side
var dataArray = [];
var dcOnMessage= function(event){
dataArray .push(event.data);
if(bytesToRecieve == 0)
{
var blob = new Blob(dataArray ,{type: incFileDesc.type});
reader.onload = function (event) {
saveToDisk(event.target.result,incFileDesc.name);
}
reader.readAsDataURL(blob);
}
}
var saveToDisk = function(fileUrl, fileName) {
var save = document.createElement('a');
save.href = fileUrl;
save.target = '_blank';
save.download = fileName || fileUrl;
var event = document.createEvent('Event');
event.initEvent('click', true, true);
save.dispatchEvent(event);
(window.URL || window.webkitURL).revokeObjectURL(save.href);
}
Итак, я хочу сохранить данные в файле на диске, а затем записать непосредственно в этот файл. Но как мне это сделать?