nest.js实现文件上传

本文介绍了如何在NestJS应用中使用pnpm管理依赖,引入Multer模块处理文件上传。详细步骤包括配置Multer的存储位置和文件命名规则,以及创建并使用UploadController进行文件接收。

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

安装依赖包:

pnpm add multer
pnpm add -D @types/multer

src下新建upload文件夹,文夹中新建upload.module.ts和upload.controller.ts文件

upload.module.ts文件代码:

import { Module } from "@nestjs/common";
import { MulterModule } from "@nestjs/platform-express";
import { UploadController } from "./upload.controller";
import { diskStorage } from 'multer'
import {extname} from 'path'

@Module({
    imports: [MulterModule.register({
        storage: diskStorage({
        //文件储存位置
        destination: 'uploads/' + new Date().getFullYear()+'/' + Number(new Date().getMonth()+1),
        //文件名定制
        filename: (req, file, callback) => {
            const path = Date.now() + '-' + Math.round(Math.random() * 1e10) + extname(file.originalname)
            callback(null, path)
        },})
    })],
    controllers: [UploadController]
})

export class UploadModule {}

upload.controller.ts文件代码:

import { Controller,Post, UseInterceptors, UploadedFile } from '@nestjs/common';
import {FileInterceptor} from '@nestjs/platform-express'

@Controller('upload')
export class UploadController {
  @Post('file')
  @UseInterceptors(FileInterceptor('file'))
  uploadFile(@UploadedFile() file) {
    return file.destination + file.filename
  }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值