zoukankan      html  css  js  c++  java
  • Node-文件上传

    使用nodejs express 实现文件上传

    html 代码部分

    <html>
    
    <head>
        <title>文件上传表单</title>
        <link rel="stylesheet" href="public/css/home.css">
    </head>
    
    <body>
        <div class="upload-wrap">
            <h3 class="title">文件上传:</h3>
            <form action="/file/upload" method="post" enctype="multipart/form-data">
                <input class="select" type="file" name="image" />
                <br />
                <input class="btnsub" type="submit" value="上传图片" />
            </form>
        </div>
        <div class="static">
            <span class="test">静态资源测试</span>
            <div class="bgcolor"></div>
            <img src="public/image/car.jpg" alt="">
        </div>
        <script src="public/js/home.js"></script>
    </body>
    
    </html>

    main.js 代码部分

    Multer是 Express 官方推出的,用于Node.jsmultipart/form-data请求数据处理的中间件。

    它基于busboy构建,可以高效的处理文件上传,但并不处理multipart/form-data之外的用户请求。

    使用步骤 : 

    安装 : npm install multer --save

    API : 

    fieldname - 表单提交的文件名(input控件的name属性)

    originalname - 文件在用户设备中的原始名称
    encoding - 文件的编码类型
    mimetype - 文件的Mime类型
    size - 文件的大小
    destination - 文件的保存目录(DiskStorage)
    filename - 文件在destination中的名称(DiskStorage)
    path - 上传文件的全路径(DiskStorage)

    buffer - 文件对象的Buffer(MemoryStorage)

    var express = require('express');
    var app = express();
    var fs = require("fs");
    
    var multer = require('multer');
    
    app.use('/public', express.static('public'));
    app.use(multer({ dest: '/tmp/' }).array('image'));
    
    app.get('/', function (req, res) {
        res.sendFile(__dirname + "/" + "index.html");
    })
    
    app.post('/file/upload', function (req, res) {
        console.log(req.files,'打印文件信息')
        fs.readFile(req.files[0].path, function (err, data) {
            // 将取得文件写入到data/img目录中去
            fs.writeFile(__dirname+'/'+'data/img/'+ req.files[0].originalname,data, function (err) {
                if (err) {
                    console.log(err);
                } else {
                    response = {
                        message: 'FILE UPLOADED SUCCESSFULY',
                        filename: req.files[0].originalname
                    };
                }
                res.json(response)
                // res.end(JSON.stringify(response));
            });
        });
    })
    
    app.listen(8080, function (err) {
        if(err){
            console.log("服务启动失败")
        }else{
            console.log("应用实例,访问地址为 http://localhost:8080")
        }
    })
  • 相关阅读:
    CF 429C
    GDOI2015滚粗记
    JLOI2015 城池攻占
    GDKOI2014 石油储备计划
    HNOI2012 射箭
    移动端复制到剪贴板
    再谈mobile web retina 下 1px 边框解决方案
    css去除chrome下select元素默认border-radius
    整理低版本ie兼容问题的解决方案
    移动端按钮交互变色实
  • 原文地址:https://www.cnblogs.com/rose-sharon/p/11692553.html
Copyright © 2011-2022 走看看