在nodejs中如何实现大文件读取
程序员文章站
2022-03-29 12:29:55
...
这篇文章主要为大家详细介绍了nodejs实现大文件的读取,比如在线视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
nodejs进行视频读取时不能像读取图片之类的一次性读取,而是必须读取一部分返回一部分,这样客户端的播放才会边缓冲边播放,而不必等待全部缓冲完再播放。
老规矩,直接贴代码讲解:
var fs = require('fs'); function readBigFileEntry(filename, response) { path.exists(filename, function(exists) { if (!filename || !exists) { response.writeHead(404); response.end(); return; } var readStream = fs.ReadStream(filename); var contentType = 'none'; var ext = path.extname(filename); switch (ext) { case ".flv": contentType = "video/flv"; break; } response.writeHead(200, { 'Content-Type' : contentType, 'Accept-Ranges' : 'bytes', 'Server' : 'Microsoft-IIS/7.5', 'X-Powered-By' : 'ASP.NET' }); readStream.on('close', function() { response.end(); console.log("Stream finished."); }); readStream.pipe(response); }); }
通过fs模块的ReadStream方法,拿到视频流,然后绑定关闭事件:当流读取到结尾的时候结束response请求,最后通过pipe方法进行小块小块的读取。这里的head信息不能添加Content-Length属性,因为必须分段读取,如果加了这个属性,浏览器就会以为请求结束了从而关闭请求。
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
以上就是在nodejs中如何实现大文件读取的详细内容,更多请关注其它相关文章!
上一篇: PHP MySQL Where子句学习
下一篇: PHP初学者常见问题集合 修正版21问答
推荐阅读
-
在CorelDRAW中如何实现自定义波浪线?
-
在java中如何实现字符串的反转
-
jQuery源码分析之$.isWindow、$.isArraryLike以及$.type在jQuery中如何实现?
-
如何实现textarea中输入@在右下方出现一个提示框?
-
只打印指定数据区域在Excel中如何实现局部数据CTRL+P打印
-
一个简单的for循环,在Opencl中如何实现呢
-
在ASP.NET Core中,静态类如何读取配置文件
-
nodejs实现大文件(在线视频)的读取
-
Python读取txt文件应用---用python实现读取一个txt文档,并根据相应判断条件在txt文件中,每一行内写入指定数据。
-
考勤表由纵列转化为横向在Excel中如何实现