您好,登錄后才能下訂單哦!
小編給大家分享一下使用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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。