javascript - _formdataPolyfill2.default 不是当我尝试使用 formdata-polyfill npm 时抛出的构造函数
问题描述
我正在使用网络工作者上传文件,并且我以 formData 对象的形式发送文件,因为我知道网络工作者无权访问 DOM 我使用 formdata-polyfill 代替默认 FormData ,它正在抛出这个错误,我不知道如何正确使用这个 polyill。
这是我的代码,
//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();
}
});
解决方案
推荐阅读
- powerbi - 如何在 Power Apps 中设置必填字段
- linux - 调整 EXT4 分区的大小
- machine-learning - 有没有办法在单列中标记编码逗号分隔值..?
- android - 如何在 Google Play 商店中修复“违反家庭政策要求”
- firebase - 在 Firebase 控制台上检测帐户禁用
- apache-kafka - Kafka - max.in.flight.requests.per.connection 是每个生产者还是会话?
- javascript - 如何在运行时为 React 应用程序提供安装特定配置?
- c# - 如何从 Action Method 中进行 API Rest 调用?
- java - Spring Security SAML:从 saml2p:Response 中提取属性作为用户属性
- oracle - 如何在整个会话中用另一个字符串替换指定的子字符串