fileReader:readAsArrayBuffer()vs readAsBinaryString()

我正在使用reader.readAsArrayBuffer()将文件发送到node.js,以便我可以将其保存在/公用文件夹中。

reader.readAsArrayBuffer(event.currentTarget.files[0]) 

当读取完成后,它会调用Meteor.method()

  reader.addEventListener("loadend", function(evt){ Meteor.call("saveFile", reader.result) }) 

meteor方法接收一个文件并将其保存到我的公共/文件夹。

  saveFile:function(file){ var fs = Npm.require("fs") fs.writeFile('../../../../../public/logo/jow.png', file, {encoding:"binary"}, function (err) { console.log(err) console.log("file saved") }); } 

但是,问题是,我从来没有得到编码的权利,当打开/public/logo/jow.png文件时,我得到这个消息:

 jow.png can not be read, it may be damaged. 

但是,当我将readAsArrayBuffer()更改为readAsBinaryString()它按预期工作,我可以打开图像。

有任何想法吗?

Interesting Posts