位置: 编程技术 - 正文

浅析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)

  • 个人免征税额
  • 固定资产计提折旧计入什么科目
  • 一般纳税人每月开票不超10万
  • 企业卖车需要交印花税吗
  • 已认证发票对方红冲应该怎么做账
  • 工资 小数点
  • 转给子公司发工资分录
  • 过路费认证用去哪里认证
  • 建筑业预缴税款是什么意思
  • 营改增后的民办养老院收入是否含增值税收入?
  • 出租车发票日期可以改吗
  • 年终奖需要计入工资交社保吗
  • 汇算清缴补交所得税的账务处理小企业会计准则
  • 积分兑换现金的软件
  • 租房押金收不回来怎么做账
  • 固定资产报废未折旧完会计处理
  • 总公司人员可以在分公司报销费用吗
  • 小规模纳税人免税额度是多少
  • 城镇土地使用税每年都要交吗
  • win10系统如何在游戏中禁用输入法
  • windows 10怎么回事
  • 快启动u盘制作
  • 手工做账月末怎么结转
  • 结转代销产品成本会计分录
  • 企业取得的搬迁补贴
  • 固定资产折旧计算方法公式大全
  • Yii2使用表单上传文件的实例代码
  • 商品入库进项税额怎么算
  • 什么情况下附加税减半征收
  • 莫尔道嘎湿地公园
  • PHP中strpos、strstr和stripos、stristr函数分析
  • framework core
  • ci框架视频教程
  • 采购货未到收到发票
  • 条码续展费用
  • c语言中局部变量和全局变量同名
  • 代开专票时缴纳的增值税账务处理如何做?
  • 数据库my sql
  • 小规模纳税人代销商品增值税如何计算
  • 合伙企业需要做工商吗
  • 出票后定期付款的汇票,其提示付款的期限为
  • 保险车辆理赔入账流程
  • 应付职工薪酬的含义
  • 报销原材料运输费怎么算
  • 调整事宜
  • 取得无形资产发生的相关费用
  • 制造费用是借还是贷
  • 银行承兑汇票怎么操作
  • 如何进行企业建账
  • sqlserver重命名表名
  • linux怎么修改
  • win7进bios设置启动盘
  • ubuntu下添加新用户
  • msmpeng.exe是什么程序
  • 新手教程进不去
  • w10系统音频怎么设置
  • win8操作
  • 手机ssh远程连接服务器
  • kochsysteme
  • android的开发
  • opengl es3.0metal
  • js let语句
  • HttpURLConnection连接 详解
  • cocos2d-x教程
  • 可重复进行编程的可编程器件有 ( )
  • 网页设计中span
  • vue打包页面空白
  • 文件夹右键菜单管理
  • js跳出if语句
  • unity获取当前位置
  • unity游戏开发的技术
  • jquery设置滚动条
  • unity快速接入第三方sdk
  • js点击代码
  • jquery的理解
  • 下载重庆税务官方app
  • 货物劳务税包括哪些税
  • 社保申报每月几号申报
  • 原木进项税率
  • 湖北国税发票真伪查询系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设