_formdataPolyfill2.default不是当我尝试使用formdata-polyfill npm时抛出的构造函数

时间:2018-10-10 10:28:17

标签: javascript npm web-worker form-data

我正在使用Web Worker上传文件,并且我以formData对象的形式发送文件,因为我知道Web Worker无法访问DOM,所以我使用formdata-polyfill代替了默认的FormData,抛出此错误,我不知道如何正确使用此多元醇。

这是我的代码,

//trying to send the formdata-polyfill object to worker
require('formdata-polyfill');
    let data = new FormData();
    data.append('server-method', 'upload');
    data.append('file', event.target.files[0]);
    // let data = new FormData(event.target.files[0]);
    if (this.state.headerActiveTabUid === '1')
        this.props.dispatch(handleFileUpload({upload: 'assets', data}));
 //worker.js
 
 var file = [], p = true, url,token;
function upload(blobOrFile) {
    var xhr = new XMLHttpRequest();
    xhr.open('POST', url, true);//add url to upload
    xhr.setRequestHeader('Authorization', token);
    xhr.onload = function(e) {
    };
    xhr.send(blobOrFile);
}

function process() {
    for (var j = 0; j <file.length; j++) {
        var blob = file[j];

        const BYTES_PER_CHUNK = 1024 * 1024;
        // 1MB chunk sizes.
        const SIZE = blob.size;

        var start = 0;
        var end = BYTES_PER_CHUNK;

        while (start < SIZE) {

            if ('mozSlice' in blob) {
                var chunk = blob.mozSlice(start, end);
            } else {
                var chunk = blob.slice(start, end);
            }

            upload(chunk);

            start = end;
            end = start + BYTES_PER_CHUNK;
        }
        p = ( j === file.length - 1);
        self.postMessage(blob.name + " Uploaded Succesfully");
    }
}

self.addEventListener('message', function(e) {
    url = e.data.url;
    token = e.data.id;
    file.push(e.data.files);
    if (p) {
        process();
    }
});

0 个答案:

没有答案