目标
在Mac电脑搭建一个简易的文件上传服务器。
一般使用场景:
- 研发自测,需要服务器
- 局域网共享资料
环境搭建
1. 配置Nodejs
下载安装器
https://nodejs.org/en/
配置 formidable
npm install formidable@latest
2、创建服务文件夹
~/Desktop/nodejs/upload
3、创建nodejs文件服务
const http = require('http');
const formidable = require('formidable');
const fs = require('fs');
const path = require('path');
http.createServer(function (req, res) {
if (req.url == '/fileupload') {
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
/*
files.filetoupload各属性的取值key可以通过console.log(files);在控制台查看,修改。
*/
// console.log(files);
var oldpath = files.filetoupload.filepath;
var newpath = path.join(__dirname, "upload/" + files.filetoupload.originalFilename);
fs.rename(oldpath, newpath, function (err) {
if (err) throw err;
res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"});
res.write('File uploaded and moved!');
res.end();
});
});
} else {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<form action="fileupload" method="post" enctype="multipart/form-data">');
res.write('<input type="file" name="filetoupload"><br>');
res.write('<input type="submit">');
res.write('</form>');
return res.end();
}
}).listen(8080);
保存为 ~/Desktop/nodejs/file.js
验证
cd ~/Desktop/nodejs
node ./file.js
浏览器输入 http://127.0.0.1:8080 验证