您如何将十六进制填充的缓冲区发送到客户端进行下载?

时间:2019-01-03 19:49:35

标签: angularjs node.js hex fs

我正在使用NodeJS服务器生成一个编码为ASNI文件的文件,该文件是使用FS系统和命令fs.write(Buffer.from(“ hexstring”,hex“))

生成的

该文件生成正确,但是我不知道如何安全地将其发送到客户端。

我是否可以在服务器端执行一些操作,以将编码更改为可以通过HTTP响应正确传输的编码,然后一旦客户端具有数据处理,就可以返回原始编码?还是有可以发送文件的服务,该服务会生成一个可以发送给客户端以启动下载的链接?

我尝试使用文件创建读取流并仅通过管道传输文件,但是由于UTF-8无法处理某些ANSI字符而导致数据混乱

NODEJS

var fReadStream = fs.createReadStream(file);
fReadStream.pipe(res);

AngularJS

var file = new Blob([res.data]);
FileSaver.saveAs(file, 'g4R12.REL')

预期的输出用于服务器上正确生成的文件,以匹配客户端下载的文件,但是当前结果如下:

正确生成的文件

https://ufile.io/6l81n

Chrome下载的文件

https://ufile.io/eepdi

0 个答案:

没有答案