Heim > Web-Frontend > js-Tutorial > Verwenden Sie das Node-Express-Framework zum Hochladen von Dateien (Codebeispiel)

Verwenden Sie das Node-Express-Framework zum Hochladen von Dateien (Codebeispiel)

不言
Freigeben: 2018-10-27 15:48:54
nach vorne
1737 Leute haben es durchsucht

本篇文章给大家带来的内容是关于使用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(&#39;keys_&#39;+ Math.random());
}
app.use(sessionParser({name:&#39;index_id&#39;, keys:keyArr, maxAge:3600*60*20}))

//解析post数据
app.use(bodyParser.urlencoded({extended:false}));

//解析post文件
var objMulter = multer({dest:&#39;./public/upload&#39;})
app.use(objMulter.any());
//转发静态资源
app.use(&#39;/satic&#39;, express.static(path.join(&#39;public&#39;)));

//返回主页
app.get(&#39;/&#39;, (req, res) => {
    console.log(req.query, req.body, req.cookies, req.session)
    res.render(&#39;index&#39;,{name:&#39;index&#39;});
})
 /*   [ { fieldname: &#39;file&#39;,
    originalname: &#39;back.jpg&#39;,
    encoding: &#39;7bit&#39;,
    mimetype: &#39;image/jpeg&#39;,
    destination: &#39;./public/upload&#39;,
    filename: &#39;6c863b25d379a6f9d61e2495c2e03206&#39;,
    path: &#39;public\\upload\\6c863b25d379a6f9d61e2495c2e03206&#39;,
    size: 43300 } ] */
//上传文件
app.use(&#39;/file&#39;, (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(&#39;err&#39;);
        }else{
            res.send(&#39;success&#39;);
        }
    })
})
//监听端口
var server = app.listen(&#39;8000&#39;, function (req, res) { 
    var port = server.address().port;
    console.log(&#39;success in port:&#39; + port);
 })
Nach dem Login kopieren

这是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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonVerwenden Sie das Node-Express-Framework zum Hochladen von Dateien (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage