目标

在Mac电脑搭建一个简易的文件上传服务器。

一般使用场景:

  1. 研发自测,需要服务器
  2. 局域网共享资料

环境搭建

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 验证