javascript - 上传 Node FS 后文件损坏

标签 javascript node.js html electron filereader

您好,我正在使用 html5 filereader 和 node fs 将文件上传到服务器,到目前为止我可以做到这一点,但结果文件比原始文件大。 这是我的代码。

var f = document.getElementById('file').files[0],
    r = new FileReader();
console.log(f); //for checking file info
r.onloadend = function(e) {
    var data = e.target.result;
    var fs = require('fs');
    try {
        fs.writeFileSync(f.name, data, 'utf-8');
        console.log('saved sucessfully!');
    } catch (e) {
        alert('Failed to save the file !');
    }
}

r.readAsBinaryString(f);
}

最佳答案

开始工作了。我必须将数据转换为 ArrayBuffer

这是我最终的工作代码:

    var fs = require('fs');
    var f = document.getElementById('file').files[0],
        r = new FileReader();
    // console.log('srcPath='+f.path);
    // console.log('savPath='+f.name);

    r.onloadend = function(e) {
        var data = e.target.result;
        try {
            fs.writeFileSync('uploads/' + f.name, Buffer.from(new Uint8Array(this.result)));
            console.log('saved sucessfully!');
        } catch (e) {
            alert('Failed to save the file !');
        }
        //send your binary data via $http or $resource or do anything else with it
    }

    r.readAsArrayBuffer(f);
    console.log('binary=' + r);

关于javascript - 上传 Node FS 后文件损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48472053/

相关文章:

javascript - D3 js 中的折线条形图

node.js - 使用node.js crypto来验证签名

javascript - 为什么 node.js 没有发现我的错误?

node.js - 使用 Node JS 验证 jwt token 和代理到另一台服务器

javascript - 如何将 'ng-repeat' (ed) 按钮文本字符串获取到下一页

javascript - 带参数的 setTimeout

javascript - couchDB 设计文档不在所有其他文档的末尾

html - 具有 4 列和自动行的 CSS-Grid,如何将单个元素置于最后一行的中心?

javascript - 三个js中网格的中间挤压

javascript - 在javascript中将字符串解析为html