目前正在观看教学视频学习express框架,其中有一节讲到了通过express+busboy实现文件上传功能,亲测代码可行,下面贴一段示例代码。

uoload.js:

let http = require('http');
let express = require('express');
let fs = require('fs');
let Busboy = require('busboy');//分析express源码得出最后导出的是一个函数,所以需要加一个()
let app = express();//创建一个http服务并且挂载到app上监听5000端口
http.createServer(app).listen(5000);//使用express框架自带的static中间件,用来管理静态资源
app.use('/', express.static(__dirname + '/public'));             //上传文件必须是post方式并且需要指定上传的路径
app.post('/fileupload', function (req, res) {//通过请求头信息创建busboy对象
let busboy = new Busboy({ headers: req.headers });//将流链接到busboy对象
req.pipe(busboy);//监听file事件获取文件(字段名,文件,文件名,传输编码,mime类型)
busboy.on('file', function (filedname, file, filename, encoding, mimetype) {//创建一个可写流let writeStream = fs.createWriteStream('./upload/' + filename);//监听data事件,接收传过来的文件,如果文件过大,此事件将会执行多次,此方法必须写在file方法里file.on('data', function (data) {writeStream.write(data);})//监听end事件,文件数据接收完毕,关闭这个可写流file.on('end', function (data) {writeStream.end();});
});//监听finish完成事件,完成后重定向到百度首页busboy.on('finish', function () {res.writeHead(303, { Connection: 'close', Location: 'http://www.baidu.com/' });res.end();});});

跟upload.js同级的public文件夹下的upload.html:

 <form action="http://localhost:5000/fileupload" enctype="multipart/form-data" method="post"><input type="file" name="file" /><input type="submit"  value="提交"></form>

上传文件必须将格式指定为multipart/form-data,并且必须为post方法,这个时候访问localhost:5000/upload.html就可以了,上传成功后页面将会跳转至www.baidu.com,上传的文件会在upload文件夹下。

nodeJS中express+busboy实现文件上传相关推荐

  1. Nodejs基于express+multer的文件上传

    概览 图片上传是web开发中经常用到的功能,node社区在这方面也有了相对完善的支持. 常用的开源组件有multer.formidable等,借助这两个开源组件,可以轻松搞定图片上传. 本文主要讲解以 ...

  2. [NodeJS] 使用Express multer搭建文件上传服务

    1. 搭建Express项目 安装express npm install express 创建express项目,以下app-server为项目名 express app-server cd 进入ap ...

  3. Html5+NodeJS——拖拽多个文件上传到服务器

    实现多文件拖拽上传的简易Node项目,可以在github上下载,你可以先下载下来:https://github.com/Johnharvy/upLoadFiles/. 解开下载下的zip格式包,建议用 ...

  4. express 模板 及 文件上传

    express 的三大功能: 1. 提供了静态服务(所谓的根目录) let express = require("express"); let app = express(); a ...

  5. express框架实现文件上传、下载及推送(使用Websocket)

    目录 文件上传 客户端上传文件:bootstrap-fileinput插件 插件安装 插件使用 服务端接受文件:formidable模块 文件列表推送 客户端主动获取文件列表:fs模块 服务端主动推送 ...

  6. express之multer文件上传

    安装 npm install multer --save 为了方便演示,本文内容涉及express的模板引擎art-template 使用 index.html模板,注意一定要写enctype=&qu ...

  7. Nodejs的multer模块实现文件上传

    服务端需要进行如下操作 1.下载multer模块 npm install multer 2. 引入multer模块; 配置上传地址,文件名称 // 引入需要的模块 let express = requ ...

  8. JAVA中使用FTPClient实现文件上传下载

    在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...

  9. php中的file_upload,PHP文件上传(PHP file upload)

    PHP文件上传(PHP file upload) 我正在尝试使用php将文件上传到我的服务器,将它们保存到我的mysql数据库中,但我无法让它工作,这是我正在使用的脚本,我相信它与"$ _F ...

  10. action中实现对批量文件上传的封装

    如今,文件(尤其是图片)上传,在前后台的应用相当普遍,上传头像.共享资料等已成为最基本应用.我们很希望通过一个万能的封装方法来实现一劳永逸的效果. 接下来,就来为大家介绍具体实现. 首先,我们需要一个 ...

最新文章

  1. laravel 中创建全局函数 (类似于 TP 中 functions.php) 的方式
  2. resource busy and acquire with nowait specified解决方法
  3. pv原语模拟实现_并发编程信号量的使用方法和其实现原理
  4. python怎么读取excel-python怎么读取excel表格
  5. Hibernate之HQL查询
  6. PHP实现下载远程图片保存到本地的方法
  7. 全球及中国硬盘用基板行业发展前景预测与投资战略规划研究报告2022-2028年
  8. 计算机毕业设计java+jsp幼儿园信息网站(源码+系统+mysql数据库+Lw文档)
  9. [fairseq] 报错:TypeError: _broadcast_coalesced(): incompatible function arguments
  10. 计算机网络协议教案反思,《TCP/IP协议分析》教学实践与反思
  11. 一次简单的流量控制实现
  12. [2016物联网博览会]阿里王坚:万物互联网让数据真正发挥价值
  13. 腾讯START云游戏 0.290.1中文版 (跨终端游戏平台)
  14. 梳理原型结构的方法小结
  15. 苹果系统设置http代理ip教程
  16. 羊了个羊游戏h5网页版源码
  17. UML设计——网上信用卡管理系统分析与设计(新手)
  18. 【学习笔记】Ubuntu双系统+搭建个人服务器
  19. python发送邮件函数
  20. python房价数据分析统计服_Python 爬取分析全国 12 个城市 4 万条房价信息,告诉你该怎样买房?...

热门文章

  1. Unity 科大讯飞离线语音合成
  2. python查找excel中重复数据_Python pandas 获取Excel重复记录
  3. CSS:border的属性
  4. FLOPS和FLOPs、GFLOPs区别与计算
  5. ICP算法步骤——matlab
  6. 谷歌浏览器打开普通用户_谷歌浏览器为啥打开之后会是其他的浏览器的解决步骤...
  7. 宝塔面板强制绑定手机号码解决办法
  8. 计算机与打印机怎么连接,如何连接打印机,教您电脑如何与打印机连接
  9. latex表格排版指南
  10. 显著性水平 P值 概念解释