将远程文件读入浏览器中的Node Buffer [英] Read remote file into node Buffer in the browser

查看:111
本文介绍了将远程文件读入浏览器中的Node Buffer的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆