express使用Multer实现文件上传
介绍一下如何使用 Express 框架的 Multer 中间件实现接收从前端传过来的文件并保存在本地。
目录:
安装 Multer
在使用 Multer 之前需要先安装它:
$ npm install multer --save
要想学会怎么用 node.js 的 express 框架可以看看这里。
前端上传
// html
<input type="file" value=""/>
// js
var Input = document.querySelector("input");
Input.onchange = function upload(){
var files = !!this.files ? this.files : [];
if (!files.length || !window.FileReader) {
console.log("浏览器不支持HTML5");
return false;
};
// 创建一个FormData对象,用来组装一组用 XMLHttpRequest发送请求的键/值对
var fd = new FormData();
// 把 input 标签获取的文件加入 FromData 中
fd.append('file', files[0]);
// Ajax
var request = new XMLHttpRequest();
request.open("POST", "http://localhost:5000/upload");
request.send(fd);
request.onreadystatechange = function(){
if(request.readyState === 4 & request.status === 200){
console.log("上传成功");
var response = JSON.parse(request.responseText);
console.log(response);
}
}
}
服务端接收文件
// app.js
// 在 app.js 中加载我们写好的处理文件上传的模块
var upload = require('./routes/upload');
// 允许跨域访问
app.all('*', function(req, res, next) {
res