nodeJS中express+busboy实现文件上传
目前正在观看教学视频学习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实现文件上传相关推荐
- Nodejs基于express+multer的文件上传
概览 图片上传是web开发中经常用到的功能,node社区在这方面也有了相对完善的支持. 常用的开源组件有multer.formidable等,借助这两个开源组件,可以轻松搞定图片上传. 本文主要讲解以 ...
- [NodeJS] 使用Express multer搭建文件上传服务
1. 搭建Express项目 安装express npm install express 创建express项目,以下app-server为项目名 express app-server cd 进入ap ...
- Html5+NodeJS——拖拽多个文件上传到服务器
实现多文件拖拽上传的简易Node项目,可以在github上下载,你可以先下载下来:https://github.com/Johnharvy/upLoadFiles/. 解开下载下的zip格式包,建议用 ...
- express 模板 及 文件上传
express 的三大功能: 1. 提供了静态服务(所谓的根目录) let express = require("express"); let app = express(); a ...
- express框架实现文件上传、下载及推送(使用Websocket)
目录 文件上传 客户端上传文件:bootstrap-fileinput插件 插件安装 插件使用 服务端接受文件:formidable模块 文件列表推送 客户端主动获取文件列表:fs模块 服务端主动推送 ...
- express之multer文件上传
安装 npm install multer --save 为了方便演示,本文内容涉及express的模板引擎art-template 使用 index.html模板,注意一定要写enctype=&qu ...
- Nodejs的multer模块实现文件上传
服务端需要进行如下操作 1.下载multer模块 npm install multer 2. 引入multer模块; 配置上传地址,文件名称 // 引入需要的模块 let express = requ ...
- JAVA中使用FTPClient实现文件上传下载
在JAVA程序中,经常需要和FTP打交道,比如向FTP服务器上传文件.下载文件,本文简单介绍如何利用jakarta commons中的FTPClient(在commons-net包中)实现上传下载文件 ...
- php中的file_upload,PHP文件上传(PHP file upload)
PHP文件上传(PHP file upload) 我正在尝试使用php将文件上传到我的服务器,将它们保存到我的mysql数据库中,但我无法让它工作,这是我正在使用的脚本,我相信它与"$ _F ...
- action中实现对批量文件上传的封装
如今,文件(尤其是图片)上传,在前后台的应用相当普遍,上传头像.共享资料等已成为最基本应用.我们很希望通过一个万能的封装方法来实现一劳永逸的效果. 接下来,就来为大家介绍具体实现. 首先,我们需要一个 ...
最新文章
- laravel 中创建全局函数 (类似于 TP 中 functions.php) 的方式
- resource busy and acquire with nowait specified解决方法
- pv原语模拟实现_并发编程信号量的使用方法和其实现原理
- python怎么读取excel-python怎么读取excel表格
- Hibernate之HQL查询
- PHP实现下载远程图片保存到本地的方法
- 全球及中国硬盘用基板行业发展前景预测与投资战略规划研究报告2022-2028年
- 计算机毕业设计java+jsp幼儿园信息网站(源码+系统+mysql数据库+Lw文档)
- [fairseq] 报错:TypeError: _broadcast_coalesced(): incompatible function arguments
- 计算机网络协议教案反思,《TCP/IP协议分析》教学实践与反思
- 一次简单的流量控制实现
- [2016物联网博览会]阿里王坚:万物互联网让数据真正发挥价值
- 腾讯START云游戏 0.290.1中文版 (跨终端游戏平台)
- 梳理原型结构的方法小结
- 苹果系统设置http代理ip教程
- 羊了个羊游戏h5网页版源码
- UML设计——网上信用卡管理系统分析与设计(新手)
- 【学习笔记】Ubuntu双系统+搭建个人服务器
- python发送邮件函数
- python房价数据分析统计服_Python 爬取分析全国 12 个城市 4 万条房价信息,告诉你该怎样买房?...