我需要该功能能够在后台上传图像文件,而无需让用户等到所有文件都上传完。我想使用网络工作者来执行此操作,但是不知道如何将要上传的图像的表单数据发送到worker.js
。
在进行上传的同时,用户还应该能够在we页面上移动,并且同时进行上传。这该怎么做?我了解工作人员如何工作以及如何与工作人员进行沟通的基本知识,但是我不知道如何将数据发送给工作人员以便在后台完成某些工作。
答案 0 :(得分:0)
诀窍是使用readAsArrayBuffer
将文件内容传输到网络工作者-然后使用正常的XHR或Fetch请求:
const fr = new FileReader();
fr.readAsArrayBuffer(file);
fr.onloadend = heap => this.worker.postMessage({
command: 'TransferProfile',
data: {
heap
}
}, [heap]); //Passing [heap] as a 2nd parameter flags it as Transferable
如果文件很大(因此无法在RAM中读取它们)-您可能会发现Resumable.js更适合您的情况。