当前位置:网站首页>如何正确地把服务器端返回的文件二进制流写入到本地保存成文件
如何正确地把服务器端返回的文件二进制流写入到本地保存成文件
2022-07-31 11:25:00 【华为云】
我使用 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"); } });
之后问题消失。
边栏推荐
猜你喜欢
拥抱趋势!阿里这套微服务开源框架权威手册,实战到底层细致清晰
安装MYSQL遇到问题:write configuration file卡主
IDEA 配置方法注释自动参数
学习爬虫之Scrapy框架学习(1)---Scrapy框架初学习及豆瓣top250电影信息获取的实战!
基于C51实现按键控制
3D激光SLAM:LeGO-LOAM论文解读---完整篇
“带薪划水”偷刷阿里老哥的面经宝典,三次挑战字节,终成正果
Read through the interface to call the artifact RestTemplate
PyQt5快速开发与实战 9.5 PyQtGraph在PyQt中的应用 && 9.6 Plotly在PyQt中的应用
Experience innovation and iteration through the development of lucky draw mini-programs
随机推荐
Android studio connects to MySQL and completes simple login and registration functions
Many mock tools, this time I chose the right one
5 个开源的 Rust Web 开发框架,你选择哪个?
2022/7/28
oracle优化:instr做join条件很慢「建议收藏」
瑞吉外卖项目:文件的上传与下载
学习爬虫之Scrapy框架学习(1)---Scrapy框架初学习及豆瓣top250电影信息获取的实战!
keras自带数据集(横线生成器)
Acwing-考研机试题
《JUC并发编程 - 高级篇》06 - 共享模型之不可变(不可变类的设计 | 不可变类的使用 | 享元模式)
“带薪划水”偷刷阿里老哥的面经宝典,三次挑战字节,终成正果
502 bad gateway原因、解决方法
Redis - Basics
file contains vulnerabilities
[Virtualization ecological platform] Raspberry Pi installation virtualization platform operation process
【虚拟化生态平台】平台架构图&思路和实现细节
Unix知识:shell详细解读
MySQL row-level locks (row locks, adjacent key locks, gap locks)
Usage of JOIN in MySQL
科学论文和学术论文写作