nodeJS中express+busboy实现文件上传
来源:互联网 发布:淘宝网帽子女包头帽 编辑:程序博客网 时间:2024/05/16 18:25
目前正在观看教学视频学习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文件夹下。
阅读全文
0 0
- nodeJS中express+busboy实现文件上传
- nodejs+express实现文件上传
- nodejs express+ejs+formidable实现文件上传
- NodeJS express+multer实现文件上传
- nodejs express 上传文件
- nodejs express 文件上传处理
- 使用nodejs+express(4.x+)实现文件上传
- 使用nodejs+express(4.x+)实现文件上传
- node.js + busboy 多文件上传
- nodejs express 4.0+的文件上传
- nodejs + Express 用 dropzone.js 上传文件
- Nodejs express、html5实现拖拽上传
- nodejs实现文件上传
- Busboy 上传文件到指定目录,并重命名,node.js
- 基于NodeJs的Express及Webuploader实现大文件分片上传与合并(一)
- Express、Nodejs服务器上传文件时出现Unexpected field
- Nodejs进阶 基于express+multer的文件上传
- 基于NodeJs的Express及Webuploader实现大文件分片上传与合并(二)——组件化实现
- bootstrap的屏幕尺寸设置,响应式工具;导航条;排版 对其:控制元素位置
- CGContextSetFillColorWithColor: invalid context 0x0. 类似BUG!
- 8皇后问题 递归 函数调用是重点
- java 中 mongodb的各种操作 模糊查询 精确查询 等等
- Spring之Session篇
- nodeJS中express+busboy实现文件上传
- Java set 集合的基本用法
- 人脸识别
- OpenCV笔记大集锦
- IntelliJ IDEA 创建maven springmvc 简单项目
- NoSQL简介
- (c#) 销毁资源和释放内存
- 3D数学 学习笔记(7) 视图、视锥、视场(Field of View)、裁切空间、屏幕空间
- tp3.2下支付宝即时到账开发的一种方式