网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。
本篇文章给大家带来的内容是关于使用node express框架实现文件的上传(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
本文主要采用node express框架实现,模板引擎用的是EJS
这是app.js文件
const express = require('express');
const cookieParser = require('cookie-parser');
const sessionParser = require('cookie-session');
const consolidate = require('consolidate');
const path = require('path');
const bodyParser = require('body-parser');
const multer = require('multer');
const fs = require('fs');
var app = express();
//配置模板引擎
app.set('view engine', 'html');
app.set('views', path.join(__dirname, 'views'));
app.engine('html', consolidate.ejs);
//解析cookie
app.use(cookieParser('sdadadasdasdasdas21312'));
//解析session
var keyArr = [];
for(var i = 0;i<100000;i++){
keyArr.push('keys_'+ Math.random());
}
app.use(sessionParser({name:'index_id', keys:keyArr, maxAge:3600*60*20}))
//解析post数据
app.use(bodyParser.urlencoded({extended:false}));
//解析post文件
var objMulter = multer({dest:'./public/upload'})
app.use(objMulter.any());
//转发静态资源
app.use('/satic', express.static(path.join('public')));
//返回主页
app.get('/', (req, res) => {
console.log(req.query, req.body, req.cookies, req.session)
res.render('index',{name:'index'});
})
/* [ { fieldname: 'file',
originalname: 'back.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
destination: './public/upload',
filename: '6c863b25d379a6f9d61e2495c2e03206',
path: 'public\\upload\\6c863b25d379a6f9d61e2495c2e03206',
size: 43300 } ] */
//上传文件
app.use('/file', (req, res) => {
var oldName = req.files[0].path;
var newName = oldName + path.parse(req.files[0].originalname).ext;
//console.log("ext",path.parse(req.files[0].origial).ext)
fs.rename(oldName, newName, (err) => {
if(err){
res.send('err');
}else{
res.send('success');
}
})
})
//监听端口
var server = app.listen('8000', function (req, res) {
var port = server.address().port;
console.log('success in port:' + port);
})