我正在使用 WebRTC 数据通道来构建文件传输服务。
对于小于 30 Mb 左右的较小文件,它的运行非常好。现在在接收端,我只是将文件数据保存在内存中,当所有数据传输完毕后,我保存文件。
有点像这样:
//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);
}
所以我想将数据保存在磁盘上的文件中,然后直接写入该文件。但是我该怎么做呢?