zoukankan      html  css  js  c++  java
  • node.js上传文件、更改文件名

    //需要安装
    const express = require("express");
    const bodyParser = require("body-parser");
    const multer = require("multer");
    const fs = require("fs");
    const pathLib = require("path");
    /**
     * multer 参数:保存文件 但是没有文件后缀名 dest: "保存的路径"
     *                 
     */
    var objMulter = multer({dest: './www/uploade/'});
    var server = express();
    
    // server.use(bodyParser.urlencoded({extended: false}));
    /**
     * multer 上传文件中间件 
     * 先创建一个 multer 实例 
     * 常用的:objMulter.single('上传文件name,如:input的name');  上传一个指定文件 
     *         objMulter.any(); 上传所有文件
     */
    server.use(objMulter.any());
    
    
    server.post("/", function(req, res, next){
        //req.files  接受上传文件信息
        /** path   获取文件信息
         *  root: 'G:',
            dir: 'G:',  //文件路径
            base: 'QQ图片20170727140716.png', //文件名部分
            ext: '.png',  // 文件扩展名部分
            name: 'H5piaoWu2' //文件名部分   不包含扩展名
         * 
         */
        var newName = req.files[0].path + pathLib.parse(req.files[0].originalname).ext;
         /**
         * fs 属性 rename 参数1:被改的文件, 参数2:需要更改的名称 , 参数3:回调函数function(err){}
         */        
        fs.rename(req.files[0].path, newName, function(err){
            if (err)
                res.send("upload  err");
            else
                res.send("uploade success");
        });
    });
    /**
     *  fieldname: 'f1',   //上传的文件: input的name
     *  originalname: 'QQ图片20170727140716.png', //原始文件名
     *  encoding: '7bit',  //编码方式
     *  mimetype: 'image/png',  //文件类型
     *  buffer: <Buffer 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 04 b0
     *       0 03 e8 08 06 00 00 00 ce 5b 07 db 00 00 20 00 49 44 41 54 78 9c ec bd 79 dc
     *       45 91 ... >, // buffer数据
     *  size: 96590 } ] // 文件大小
     */
    
    /** dest  保存文件返回数据  和上面不同
     * [ { fieldname: 'f1',   
     *  originalname: 'QQ图片20170727140716.png',
     *  encoding: '7bit',
     *  mimetype: 'image/png',
     *  destination: './www/uploade/', // 文件保存的路径
     *  filename: '0200b2a495eaf51776a1e47a31ff4cc9',  // 保存文件的名称
     *  path: 'www\uploade\0200b2a495eaf51776a1e47a31ff4cc9', // 文件的全路径
     *  size: 96590 } ] 
     * 
     */
    
    server.listen(8080);

    html代码
    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="utf-8">
        </head>
        <body>
            <form action="http://localhost:8080" method="post" enctype="multipart/form-data">
                文件:<input type="file" name="f1" /><br />
                <input type="submit" value="上传" />
            </form>
        </body>
    </html>
    

      


      

  • 相关阅读:
    Python 模块 itertools
    Python 字符串的encode与decode
    python 模块 hashlib(提供多个不同的加密算法)
    暴力尝试安卓gesture.key
    hdu 1300 Pearls(DP)
    hdu 1232 畅通工程(并查集)
    hdu 1856 More is better(并查集)
    hdu 1198 Farm Irrigation(并查集)
    hdu 3635 Dragon Balls(并查集)
    hdu 3038 How Many Answers Are Wrong(并查集)
  • 原文地址:https://www.cnblogs.com/patriot/p/7299832.html
Copyright © 2011-2022 走看看