将远程文件读入浏览器中的Node Buffer [英] Read remote file into node Buffer in the browser
问题描述
我正在使用browerify在浏览器中使用此程序包.我创建了一个phonegap应用程序,该应用程序从服务器下载.fcs文件.我的代码是:
Im using browerify to use this package in the browser. I've created a phonegap app that downloads .fcs files from the server. My code is:
var reader = new FileReader();
reader.onloadend = function(e){
var buffer = this.result;
var options = {};
var fcs = new FCS(options, buffer);
};
reader.readAsArrayBuffer(file);
问题在于缓冲区的类型为 ArrayBuffer ,但FCS()需要一个Buffer,该缓冲区仅在节点中可用,所以我会得到一个错误.在节点中,您可以执行以下操作:
The problem is that buffer is of type ArrayBuffer but FCS() expects a Buffer, which is only available in node, so I will get an error. In node, you can do something like this:
var FS = require('fs');
FS.readFile(filename, function(err, databuf) {
var fcs = new FCS(options, databuf);
});
有什么想法可以将远程文件读入浏览器的Node Buffer中吗?
Any ideas how I can read remote files into node Buffer in the browser?
推荐答案
您需要对浏览器使用Buffer模块.例如: https://github.com/feross/buffer
You need use Buffer module for browser. For example: https://github.com/feross/buffer
1)Browserify模块:
1) Browserify modules:
browserify -r buffer -r fcs -o bundle.js
2)简单测试:
<input type='file' onchange='openFile(event)'>
<script src="bundle.js"></script>
<script>
var Buffer = require('buffer').Buffer;
var FCS = require('fcs');
var openFile = function(event) {
var input = event.target;
var reader = new FileReader();
reader.onload = function(){
var data = new Buffer( reader.result );
var fcs = new FCS({}, data);
console.log(fcs);
};
reader.readAsText(input.files[0]);
};
</script>
https://jsfiddle.net/o9qo8e0t/
这篇关于将远程文件读入浏览器中的Node Buffer的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!