nodejs 上传文件

 余温
2018年05月18日 00时53分
 web

这是代码有注释的

var express = require('express');
var bodyParser = require('body-parser')
var fs = require('fs');
var multer = require('multer');
var path = require("path")
var upload = multer({ dest: 'uploads/' })

app = express();
//解析post内容的中间件
var urlencodedParser = bodyParser.urlencoded({ extended: false })
//app.use(bodyParser.json());

//使其能渲染html文件
app.engine('.html', require('ejs').__express);
app.set('view engine', 'html');

//模板路径
app.set('views', './views');

//首页
app.get('/', function(req, res) {
    res.render('index');
})

//post页面 
app.get('/post', function(req, res) {
    res.render('post');
})

//post  上传信息  req.body.name获取上传的表单信息
app.post('/post', urlencodedParser, function(req, res) {
    console.log(req.body.name)
    res.send('上传的数据是: ' + req.body.name);
});

//上传文件
app.post('/file', upload.single('files'), function(req, res) {
    console.log(req.file); //上传上来的文件信息
    console.log(req.file.path); //文件保存的路径和文件名
    console.log(path.parse(req.file.originalname)); //文件原始的文件名  
    // req.file.pat 上传上来保存的文件路径和文件名 没有后缀名称    
    // path.parse(req.file.originalname).ext 取到文件的后缀名称  
    // http://www.runoob.com/nodejs/nodejs-path-module.html 文档放地址
    //  新的文件名 newName
    var newName = req.file.path + path.parse(req.file.originalname).ext;
    //修改文件名称  fs.rename
    fs.rename(req.file.path, newName, function(error) {
        if (error) {
            res.send('上传失败');
        } else {
            res.send('上传成功');
        }
    });
    res.send('OK');
});
var server = app.listen(8081, function() {

    var host = server.address().address
    var port = server.address().port

    console.log("应用实例,访问地址为 http://%s:%s", host, port)

})

前台页面就是一个单纯的表单

这是目录结构

找个好看的图片睡觉了

image.png

{{vo.nickname}}:{{vo.content}}

{{vo.time}} 回复


  • {{level.nickname}} 回复 {{level.father_nickname}}{{level.content}}
  • {{level.time}} 回复


@
登陆后评论