我尝试在我的React应用程序中实现块文件上传。 我正在使用blob.slice和Filreader来获取base64并将其作为POST发送到我的服务器。
const chunkSize = 1024 * 1024 * 5;
const blob = new Blob([file]);
const currentChunk = blob.slice(0, chunkSize);
const reader = new FileReader();
reader.readAsDataURL(currentChunk);
reader.onload = (e) => {
const base64Data = reader.result.replace('data:;base64,', '');
axios.post('url', {
data: base64Data
}).then((response) => {
// .. Get next chunk and so on
})
}
在我的nodejs服务器端(带有Express),我尝试将每个base64块附加到文件中以恢复整个文件:
fs = require('fs');
fs.writeFileSync(testFile, req.body.data, {encoding: 'base64'});
如果我现在上传一个文件,例如500mb,则服务器上还原的文件始终为5.2MB
答案 0 :(得分:1)
基于docs,这应该可以完成
fs.appendFileSync(testFile, req.body.data, {encoding: 'base64'});