文件上传

安装 Express 框架
npm install express --save
用于处理 enctype="multipart/form-data"(设置表单的MIME编码)的表单数据。
npm install multer --save

代码

    const express = require("express");
const app = express.Router();  
var fs = require("fs");
var multer = require('multer');
app.use(multer({
    dest: '/tmp/'
}).array('image'));
//配置上传路径
app.get("/", function (req, res) {
    __dirname //获取当前路径
    res.sendFile(__dirname + "/" + "index.html");
});
//配置路由post访问路径
app.post("/file", function (req, res) {
    console.log(req); //打印提交的数据
    var des_file = "public/image/" + req.files[0].originalname;     //上传图片路径 
    readFile //读取
    fs.readFile(req.files[0].path, (err, data) => {
        data //得到读取的数据  writeFile //写入
        fs.writeFile(des_file, data, (err) => {
            if (err) {
                console.log(err);
            };
        })
    });
    res.send("上传成功")
});

代码2

var express = require('express');
var fs=require('fs');
var path = require('path');
var multiparty = require("multiparty");
var router = express.Router();
var crypto=require('crypto');
router.get('/', function(req, res, next) {
   res.sendFile(path.resolve('./views/file.html'));
});
router.post('/file', function(req, res, next) {
   const form = new multiparty.Form();
   form.parse(req,function(err,fields,files){
      if(path.extname(files.image[0].originalFilename)=='.jpg'||path.extname(files.image[0].originalFilename)=='.png'){
         var originalFilename=files.image[0].originalFilename.split('.')[0];
         var sha1 = crypto.createHash("sha1");
         sha1.update(originalFilename);
         var resd = sha1.digest('hex');
         fs.readFile(files.image[0].path,(err,data)=>{
            fs.writeFile(path.resolve('./public/images/'+resd+path.extname(files.image[0].originalFilename)),data,(err)=>{
               res.send('上传成功')
            })
         })
      }else{
         res.send('不支持'+path.extname(files.image[0].originalFilename)+'格式')
      }
   });
});
module.exports = router;

最后修改:2020 年 01 月 31 日 03 : 00 PM
如果觉得我的文章对你有用,请随意赞赏