• 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>
    

      


      

  • 相关阅读:
    Android Studio 使用SlidingMenu侧滑菜单
    【翻译】使用Sencha Ext JS 6打造通用应用程序
    将Ext JS 6应用程序导入Web项目
    Ext JS 6正式版的GPL版本下载地址
    谈谈Ext JS的组件——布局的使用方法续二
    谈谈Ext JS的组件——布局的使用方法续一
    谈谈Ext JS的组件——布局的使用方法
    谈谈Ext JS的组件——容器与布局
    jQuery音乐播放器jPlayer
    jQuery上下切换带缩略图的焦点图
  • 原文地址:https://www.cnblogs.com/patriot/p/7299832.html
Copyright © 2020-2023  润新知