与vuejs中的网络工作者在后台上传图像文件

时间:2018-08-02 05:44:57

标签: vue.js web-worker

我需要该功能能够在后台上传图像文件,而无需让用户等到所有文件都上传完。我想使用网络工作者来执行此操作,但是不知道如何将要上传的图像的表单数据发送到worker.js

在进行上传的同时,用户还应该能够在we页面上移动,并且同时进行上传。这该怎么做?我了解工作人员如何工作以及如何与工作人员进行沟通的基本知识,但是我不知道如何将数据发送给工作人员以便在后台完成某些工作。

1 个答案:

答案 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更适合您的情况。