nodejs multer封装 上传文件

本文介绍了如何使用Element UI的上传组件配合Multer实现文件上传,包括限制文件类型和大小,以及存储和命名文件的策略。重点讲解了multer的diskStorage配置和使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>
  <el-upload
    class="upload-demo"
    drag
    action="http://127.0.0.1:3000/upload/upload"
    multiple
  >
    <i class="el-icon-upload"></i>
    <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
    <div class="el-upload__tip" slot="tip">
      只能上传jpg/png文件,且不超过500kb
    </div>
  </el-upload>
</template>

<script>
export default {};
</script>

<style>
</style>
/*
 * @Author: zhang_gen_yuan
 * @Date: 2022-02-28 16:00:35
 * @LastEditTime: 2022-02-28 16:16:12
 * @Descripttion:
 */
// 引入multer
const multer = require("multer");
// 引入path
const path = require("path");
// 引入silly-datetime
const sd = require("silly-datetime");
// 引入mkdirp 用于创建目录
const mkdirp = require("mkdirp");
const storage = multer.diskStorage({
  destination: async (req, file, cb) => {
    let d = sd.format(new Date(), "YYYY-MM-DD");
    await mkdirp("public/upload/" + d);
    cb(null, "public/upload/" + d);
  },
  filename: function (req, file, cb) {
    let extname = path.extname(file.originalname);
    const uniqueSuffix = Date.now() + "-" + Math.round(Math.random() * 1e9);
    cb(null, file.fieldname + "-" + uniqueSuffix + extname);
  },
});

const upload = multer({ storage: storage });

module.exports = upload;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值