位置: 编程技术 - 正文

浅析Node.js实现HTTP文件下载(node.js gui)

编辑:rootadmin

推荐整理分享浅析Node.js实现HTTP文件下载(node.js gui),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs实战教程,node js教程,node.js javascript,nodejs实战教程,node.js javascript,node.js javascript,node js教程,node js教程,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

HTTP实现文件下载时,只要在服务器设置好相关响应头,并使用二进制传输文件数据即可,而客户端(浏览器)会根据响应头接收文件数据。而在Node.js中,设置好响应头后,读取文件流,再使用“.pipe()”方法将流转接到响应对象Response就可以实现一个简单的文件下载服务器。

1. 文件下载介绍

HTTP基于请求头和响应头实现状态交互,在得到服务器正确响应状态后,而客户端首先会解析响应头,并根据响应头来接收和展示数据(响应体)。对于文件下载来说,其实现过程如下:

1.客户端发起文件资源请求

2.服务器查找对应文件,并设置”Content-Type”、”Content-Disposition”等响应头,分别用于表示文件的”MIME”类型及文件描述

3.客户端根据服务器返回的响应头解析和接收文件数据

需要设置的响应头

设置文件下载响应头时,除了常用的HTTP响应头外,比较重要是还要设置以下两个响应头:

在上面的设置中,”Content-Type: application/octet-stream”告诉浏览器这是一个二进制文件,”Content-Disposition”告诉浏览器这是一个需要下载的附件并告诉浏览器默认的文件名。如果不添加”Content-Disposition”响应头,浏览器可能会下载或显示文件内容,不同浏览器的处理有所不同。

浅析Node.js实现HTTP文件下载(node.js gui)

2. Node.js文件下载服务器实现

接下来我们基于Express 框架实现一个简单文件下载服务器,在这个服务器中主要包括两个功能:服务器文件的浏览、文件的下载。

2.1 添加路由

创建Express应用后,添加如下两个路由:

上面的添加的两个路由分别用于:显示服务器文件、实现文件下载。

2.2 显示服务器文件

实现服务器文件的显示,要通过”fs”模块读取文件目录并进行文件/目录检查等。还需要使用”path”模块处理文件路径。首先引入这两个模块:

显示服务器文件实现代码如下:

上面代码中,读取目录后通过视图文件”files.ejs”显示可下载文件列表。其代码如下:

2.3 实现文件下载

实现文件下载时,可以先读取文件到一个”Buffer”中,再通过”res.send()”或”res.end()”方法发送文件数据,也可以基于流(”Stream”)实现文件数据的发送。使用”Stream”实现文件下载时,可以使用”fs.createReadStream()”方法创建一个可读流,而响应对象Response是一个可写流。这样,只需要通过”.pipe()”方法将文件流转接到Response响应流中即可。

文件下载实现代码如下:

总结

标签: node.js gui

本文链接地址:https://www.jiuchutong.com/biancheng/370763.html 转载请保留说明!

上一篇:nodejs如何获取时间戳与时间差(node 获取当前时间)

下一篇:angularJS 如何读写缓冲的方法(推荐)(angular.js)

  • 个人应纳税所得额20万交多少税
  • 电子缴款凭证和完税证明都可以做原始凭证吗
  • 小微企业普惠性税收减免政策2019 13号
  • 初级职称需要进行继续教育吗
  • 年报资金数额要怎样填
  • 商铺租赁合同的用途怎么写
  • 按价格从价缴纳增值税
  • 出口货物预收账款会计分录
  • 京东预付定金是什么意思
  • 可转换债券发行主体
  • 应收账款零头没有收到如何账务处理
  • 买鼠标去哪买
  • 股权转让个人交的印花税可以入账吗
  • 贴现的利息能不能取出来
  • 自有房产墙面出租,需要缴纳房产税吗?
  • 罚款费用报销单怎么写
  • 维修材料属于什么会计科目
  • 出售固定资产累计折旧的账务处理
  • 出差伙食补贴没发
  • 公司不盈利用交税吗
  • 怎么更正以前年度企业所得税
  • windows defender隔离区
  • 小规模没有发票可以入账吗
  • 苹果手机id被锁定什么意思
  • 支付商品展览费计入
  • 交割单会出错吗
  • php oci
  • 银承到期扣款会计分录
  • 新成立公司工会经费什么时候交
  • 采购合同付款违约条款怎么签
  • opware12.exe - opware12进程是什么文件 有什么用
  • 公司年终奖怎么缴税
  • chrome谷歌浏览器
  • php imagecopy
  • 外贸企业进项发票能是外贸企业吗
  • cd播放模式
  • 年终奖要计入工资吗
  • 利息收入的会计科目怎么做
  • 客户要发票加收怎么办
  • 成本核算的意义是什么
  • 有外币业务的银行
  • 两个城市的社保可以累计吗
  • 异地托收承付结算ppt
  • 房产税从租和从价哪个税金高
  • 总分类账户余额表怎么做账
  • 房租押金需要缴税吗
  • 企业残障金缴纳标准
  • 工伤鉴定费计入什么科目
  • 个人承担的个税是公司的成本费用吗
  • 亏损企业对外捐赠的税前扣除
  • 委托代理进出口
  • 主营业务成本包括工资吗
  • 忘了作废的发票还能用吗
  • 付别人押金的会计分录
  • 应收账款贷方余额应与什么科目合并后填入报表
  • 一般纳税人销售旧货可以开专票吗
  • 销售成本的结转
  • 展览门票收入按什么征税
  • 提前还贷款要满十八岁吗
  • 原始凭证的审核和填制
  • 数据库崩了怎么恢复
  • mysql 绿色
  • WinXP系统VPN连接经常性自动断开的4个解决方法
  • 挂载光驱的命令
  • windows使用痕迹在哪里
  • ati2plab.exe是什么进程 ati2plab进程安全吗
  • windows关机音乐
  • vm虚拟机怎么使用
  • ExtJS 2.0实用简明教程 之Border区域布局
  • android游戏开发框架
  • javascript 操作css
  • 贴吧热门评论
  • unity3d官方案例
  • 怎么申请返回
  • python3.9.1怎么用
  • 如何查询纳税信用等级证明
  • 关于挂职的规定
  • 税务机关党建动员大会
  • 专用缴款书会计分录
  • 江苏地税局官网网站
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设