如何正确地把服务器端返回的文件二进制流写入到本地保存成文件
生活随笔
收集整理的這篇文章主要介紹了
如何正确地把服务器端返回的文件二进制流写入到本地保存成文件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我使用 Node.js 的 request 工具庫,請求服務(wù)器端的視頻文件,保存到本地之后,發(fā)現(xiàn)了問題。
我把 url 輸入到瀏覽器里,手動下載視頻文件后,文件大小為 70 多 KB:
然而使用 Node.js 代碼請求文件數(shù)據(jù)并保存到本地,發(fā)現(xiàn)文件尺寸變成 100 多 KB 了,顯然不正確:
經(jīng)過研究發(fā)現(xiàn),需要使用 request 在發(fā)起數(shù)據(jù)請求之前,添加如下一行語句:
request.defaults({ encoding: null });完整的數(shù)據(jù)請求的代碼:
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的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的如何正确地把服务器端返回的文件二进制流写入到本地保存成文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 库克:大量印度人将成中产,市场正处于转折
- 下一篇: 曝vivo X100将于11月发布 灭霸