我使用 Node.js 的 request 工具库,请求服务器端的视频文件,保存到本地之后,发现了问题。

我把 url 输入到浏览器里,手动下载视频文件后,文件大小为 70 多 KB:

然而使用 Node.js 代码请求文件数据并保存到本地,发现文件尺寸变成 100 多 KB 了,显然不正确:

经过研究发现,需要使用 request 在发起数据请求之前,添加如下一行语句:

request.defaults({ encoding: null });

完整的数据请求的代码:

var requestC = request.defaults({ encoding: null });console.log("get video via url: " + url );const fileName = getVideoPartNameByUrl(url);requestC(getVideoOptions,function(error,response,body){if(error){console.log("error occurred: " + error);reject(error);}resolve({fileName: fileName,fileContent: body});});

文件写入的代码:

fs.writeFile(oVideo.fileName, oVideo.fileContent, "binary", function (error) {if(error)console.log("file writes error");else{console.log("File: ", oVideo.fileName, " writes ok");}});

之后问题消失。

更多Jerry的原创文章,尽在:“汪子熙”:

如何正确地把服务器端返回的文件二进制流写入到本地保存成文件相关推荐

  1. h5如何上传文件二进制流_h5pal是怎样练成的 - 二进制处理篇

    书接上回,竟然已经 10 个月过去了,真是羞于见人(并没有羞,脸皮太厚,咬我啊). 本期节目将会介绍在 JS 中如何高效率的处理二进制文件,这里的"高效率"不仅限于性能方面,还包括 ...

  2. 画板数据保存成文件的两种方法小结

    前面我学习了绘制画板以及画板的重绘,最近学习将画板数据保存成文件,与大家分享下.关于画板的保存有两种方式.先说说用队列来保存文件吧:首先需要将重绘时用来保存对象的队列按我们定义的文件格式写入文件: / ...

  3. uniapp 下载文件/二进制流数据文件 ,保存文件 ,打开文件。以及H5下载二进制流文件。

    前提注意点 downloadFile 发送的是GET请求. 如果url接口返回的是二进制流数据.则要求后端content-type 里面填写具体的返回文件类型.否则下在的文件会没有后缀名.比如exce ...

  4. ffmpeg-从flv文件中提取AAC音频数据保存为文件

    AAC ADTS格式协议: 从flv文件中提取AAC音频数据保存为文件. 如果需要详细了解AAC ADTS格式,可以查询文档. 原文件: 提取aac文件: main.c #include <st ...

  5. Wps保存文件找不到html,WPS保存的文件在哪里

    WPS保存的文件默认放在C盘当中,路径是C盘的用户中打开Administrator,接着再点击Administrator的文件夹,并依次点击appdata和local,以及kingsoft和wps c ...

  6. SpringBoot 项目将文件图片资源上传到本地静态资源文件夹下(指定文件夹下)

    1.SpringBoot 项目将文件图片资源上传到本地静态资源文件夹下(指定文件夹下) 最终效果: 前端浏览本地文件,点击上传至本地resources/static/images/imgWall下 2 ...

  7. js下载文件,javascript下载文件,FileSaver.js,页面元素保存成文件

    js下载文件,javascript下载文件,FileSaver.js,页面元素保存成文件 ================================ ©Copyright 蕃薯耀 2020-07 ...

  8. python文件输出-python将控制台输出保存至文件的方法

    很多时候在Linux系统下运行python程序时,控制台会输出一些有用的信息.为了方便保存这些信息,有时需要对这些信息进行保存.这里介绍几种将控制台输出保存到文件中的方式: 1 重定向标准输出流 重定 ...

  9. C#读取资源文件的两种方法及保存资源文件到本地

    方法1 GetManifestResourceStream VB.NET中资源的名称为:项目默认命名空间.资源文件名 C#中则是:项目命名空间.资源文件所在文件夹名.资源文件名  例如: istr = ...

最新文章

  1. Eclipse字体设置
  2. 告诉你Hadoop是什么
  3. Git 分支的创建与切换 —— Git 学习笔记 14
  4. 前端学习(2056):初识vue.js
  5. Django之Model操作
  6. Android camera开发(11)---Camera软件架构
  7. 晶圆产能紧缺,成就华为的“无厂模式”反成败笔
  8. 【TSP】基于matlab粒子群算法求解旅行商问题【含Matlab源码 445期】
  9. 【Java核心技术卷】谈谈对Java平台的理解
  10. 百度墨卡托经纬度互转工具类
  11. UESTC 1633 去年春恨却来时,落花人独立,微雨燕双飞 Dijkstra+构造
  12. EditPlus 使用 json 格式化
  13. 求索NoSQL的现在与未来,第五届 Techo TVP 开发者峰会圆满落幕
  14. TT付款方式、前TT和后TT、LC信用证+TT付款方式
  15. 最短路(两种常用算法!!!)
  16. 《VMware Virtual SAN权威指南》一2.3.6 巨型帧
  17. java连接打印机打印PDF
  18. Python + Selenium(九)- 解决图片验证码登录或注册问题
  19. 最值得购买的四大名著版本推荐(一家之言)
  20. 16进制 dat matlab_用MATLAB生成DAT文件

热门文章

  1. BZOJ 2566 xmastree(树分治+multiset)
  2. Spark2.0流式处理读Kafka并写ES
  3. 刚刚在用的React Native的照相机和图片 react-native-image-picker
  4. SOFA 源码分析 — 连接管理器
  5. 一对多关联映射(单向关联)见项目:me_one_to_many
  6. 改革收入分配体制 网络电话成通信省钱先锋
  7. 访问 IIS 元数据库失败 的解决方法
  8. SQL Server 2005 在只有MDF文件的情况下恢复(丢失日志文件)
  9. IT基础结构-1.DC-DNS-安装
  10. 客户端实时获取Oracle数据库服务器端的系统时间