小编给大家分享一下使用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);
})
这是form.html文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>首页</title>
<style>
.container{
height: 400px;
width: 400px;
background-color: gainsboro;
}
</style>
</head>
<body>
<span>这是<%=name%>页面</span>
<form action="/file" method="POST" enctype="multipart/form-data">
<div>
<input type="file" name="file">
<button type="submit" id="upload">上传</button>
</div>
</form>
</body>
</html>
以上是使用node express框架实现文件的上传功能的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。