当前位置: 首页 > Web前端 > JavaScript

如何正确地将服务器返回的文件的二进制流写入本地并保存为文件

时间:2023-03-27 02:16:43 JavaScript

我是使用Node.js的请求工具库请求服务器上的视频文件,保存到本地后,我发现了一个问题。我在浏览器中输入url,手动下载视频文件后,文件大小超过70KB:但是,当我使用Node.js代码请求文件数据并保存到本地时,发现该文件size变成了100多KB,显然是不正确的:经过研究发现需要使用request在发起数据请求之前添加如下一行:request.defaults({encoding:null});完整的数据请求代码:varrequestC=request.defaults({encoding:null});console.log("通过url获取视频:"+url);constfileName=getVideoPartNameByUrl(url);requestC(getVideoOptions,function(error,response,body){if(error){console.log("发生错误:"+error);reject(error);}resolve({fileName:fileName,fileContent:body});});写入文件代码:fs.writeFile(oVideo.fileName,oVideo.fileContent,"binary",function(error){if(error)console.log("filewriteserror");else{console.log("File:",oVideo.fileName,"写??入正常");}});之后问题就消失了。更多Jerry原创文章在这里:《王子熙》: