NodeJS文件上传示例代码

来源:互联网 发布:淘宝排版软件 编辑:程序博客网 时间:2024/05/21 06:13

Author: kagula

Date: 2017-11-18

Environment:

[1]NodeJS 8.9.1

[2]NPM 5.5.1

Introduction:

一个尽可能简单的Express multer方式文件上传例子,目的是给初学NodeJS的人有个概念。


Content:

这里仅贴出upload.html和index.js这两个文件的源代码,备忘。

upload.html

<form method="post" enctype="multipart/form-data" action="/upload-single">  <input type="file" name="myfile">  <input type="submit"></form>


index.js源码清单

var express = require('express');//引入express模块var app = express();//创建应用//定义public路径var pub = __dirname + '/public';app.use(express.static(pub));//设置静态目录为pubic//npm install multer --savevar multer  = require('multer');var storage = multer.diskStorage({  //设置上传后文件路径,"d:/myapp/public/uploads文件夹"会自动创建。  destination: function (req, file, cb) {    cb(null, './public/uploads')  },   //给上传文件重命名,获取添加后缀名  filename: function (req, file, cb) {    var fileFormat = (file.originalname).split(".");    cb(null, file.fieldname + '-' + Date.now() + "." + fileFormat[fileFormat.length - 1]);  }});var upload = multer({ storage: storage })  //访问路径//http://localhost//返回提交文件页面。app.get('/', function(req, res){    res.sendFile('views/upload.html', { root: __dirname });  });  //单文件上传获取信息app.post('/upload-single',upload.single('myfile'),function(req,res,next){  var file=req.file;  console.log("original file name is "+file.originalname);//original file name is 20170615_211619.jpg  console.log("file name is " + file.filename);//file name is myfile-1511013577361.jpg  res.send({ret_code: '0'});//这行代码必须要有,否则Browser会处于wait状态。})app.use(function(err, req, res, next) {  res.send(err.stack);});app.listen(80);console.log('Express started on port 80');