小编给大家分享一下使用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框架实现文件的上传功能的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。