专栏首页计算机编程nestJs 之 fileupload 自定义路径与文件名

nestJs 之 fileupload 自定义路径与文件名

在写nest项目的时候,写到fileupload 这段时,根据官方文档,发现,上传过来的文件全部都变成了一串加密的编码,例如:

加密编码图示.png

于是本来在issue中希望能够找到解决方法,但是完全没办法解决这类问题。于是博主开始翻阅了nestJS的源码。

FileInterceptor 的 MulterOptions 源码.png

这里我们知道了,nest.js 使用的是multer 来封装的,所以我们可以直接使用multer类来进行自定义处理

根据此github 文档,我们可以直接在uploadController中书写:

import { Controller, Post, UseInterceptors, UploadedFile, FileInterceptor} from '@nestjs/common';
import multer = require('multer');
@Controller('upload')
export class UploadController {
    @Post()
    @UseInterceptors(FileInterceptor('file', {
        storage: multer.diskStorage({
            destination: (req, file, cb) => {
                cb(null, 'c:/Users/ke_li/Desktop/test/');
            },
            filename: (req, file, cb) => {
                cb(null, file.originalname);
            },
        }),
    }))
    async uploade(@UploadedFile() file) {
        return file;
    }
}

说明:destination类似于option字段 desk,指定uploadfile的目录,filename则是当前upload的file给予指定文件的文件名称, file.originalname 则是 file 在本地的文件名

于是我们获得了以下请求:

postman 请求.png

文件上传的目录

上传的文件.png

这样就完成了我们对文件目录及名称的自定义。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android 7.0+ popwindow的适配

    说明:网络上大多数都是用的global的方法导致很多情况下全面屏显示不好,底部虚拟按键位置空出,所以正确的方法应该用WindowVisibalDisplay。

    stormKid
  • nestJS 高速缓存用法

    通过官方文档,我们知道要写个拦截器继承CacheInterceptor进行对服务的交互处理,于是让我们查看一下它做了什么操作:

    stormKid
  • 【vue随手笔记】MuseUI 自定义 select 适配 mobile

    通过 emit将result值发给外部实现字父组件的双向绑定,于是父组件获取result值即:

    stormKid
  • 文件系统之file结构体管理源码分析(基于linux1.2.13)

    操作系统为进程维护了打开的文件列表,每个进程维护了一个file数组字段(struct file * fd[NR_OPEN]);每个元素指向一个file结构体。每...

    theanarkh
  • python3第七天(输入和输出)

    输出值的方式:1,表达式。2,print()函数。3,文件对象的write()函数

    py3study
  • file命令

    file命令用来探测给定文件的类型,file命令对文件的检查分为文件系统、魔法文件和语言检查3个过程。

    WindrunnerMax
  • uni app 零基础小白到项目实战

    若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。

    达达前端
  • Cocos CreatorUI系统上

    若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。

    达达前端
  • Uploads-labs上传绕过(上)

    链接:https://pan.baidu.com/s/1lMRBVdQyFuKOgNlWPUoSSQ

    字节脉搏实验室
  • Cocos Creator打包发布

    若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。

    达达前端

扫码关注云+社区

领取腾讯云代金券