zoukankan      html  css  js  c++  java
  • node文件上传server

    path处理、分割路径方便;
    fs可以提供修改文件名操作;
    multer是http文件传输中间件;
    iconv-lite转换中文编码库(没用上);
    字符处理:1、直接扔掉文件名;2、要求前端显式的提供文件名;

    const express = require("express");
    const multer = require("multer");
    const path = require("path");
    const fs = require('fs');
    const iconv = require("iconv-lite")
    
    const server = express();
    var objMulter = multer({
        dest: './files'
    });
    server.use(objMulter.any());
    
    server.post('/', (req, res, next) => {
    
        // var old_filePath = req.files[0].path; //读取已经存储后的路径;
        
        // var new_filename = req.files[0].filename; //读取已经存储后文件名;
        //     if (req.body.filename) { //选择前端给出了filename
        //     new_filename = req.body.filename;
        // }
        // var new_fileName = new_filename + path.parse(req.files[0].originalname).ext;//加后缀
    
        // var new_filePath = req.files[0].destination + "/" + new_fileName;//加钱缀
        // //准备改文件名;
        // console.log(old_filePath, "==>", new_filePath);
        // fs.rename(old_filePath, new_filePath, (err) => {
        //     if (err) console.log("文件重命名失败");
        // });
        // urlname = new_filePath;
        // console.log(req.files[0]);
        // res.send({
        //     code: 1,
        //     msg: "success",
        //     urlname: urlname,
        //     db_name:new_filename,
        //     db_type:path.parse(req.files[0].originalname).ext,
        //     db_size:req.files[0].size,
        // })
        
        var fileData=req.files[0];
        fileData.ext=path.parse(fileData.originalname).ext;
        fileData.id=fileData.filename;
        fileData.filename=fileData.id+fileData.ext;
        
        if(req.body.filename){//前端给出了改名建议
            new_filepath=fileData.destination+"/"+req.body.filename+fileData.ext;
        }else{//没有前端建议也要添加后缀名
            new_filepath=fileData.path+fileData.ext;
        }
    
        // console.log(fileData.path, "==>", new_filepath);
        fs.rename(fileData.path,new_filepath,(err) => {
            if (err) console.log("文件重命名失败");
        });
        fileData.urlname=new_filepath;
        
        
        res.send(fileData)
    })
    server.listen(8080);
    

    {{uploading-image-130288.png(uploading...)}}

  • 相关阅读:
    scp上传服务器文件
    svn一次添加所有未添加的文件
    vue 去掉#和拼接参数
    vuex状态管理
    获取页面iframe里的元素
    angular 中ng-bind-html 、$scope服务
    心态崩了
    day 8
    day 7
    day6 angularjs学习
  • 原文地址:https://www.cnblogs.com/scientist/p/15142470.html
Copyright © 2011-2022 走看看