Node.js 如何添加文件上传的身份验证

Node.js 如何添加文件上传的身份验证

有多种方法可以上传文件并对其进行身份验证。最简单的方法是使用一个名为multer的Node模块。我们可以通过限制用户在文件上传上添加认证,比如他们只能上传pdf文件且文件大小应小于1MB。

市场上有许多可用的模块,但multer是最受欢迎的。它为我们提供了不同的选项来自定义和限制我们想要的文件格式。

先决条件: 您应该了解multer中的文件上传工作原理。

安装multer模块:

步骤1: 您可以通过运行以下命令来安装multer:

npm i multer

步骤2: 您可以通过运行以下命令来检查模块版本。

npm version multer

步骤3: 然后,您只需创建一个文件夹并添加一个文件,然后通过下面的命令运行创建的文件。

node <filename>.js

步骤4: 要求模块:您需要在文件中使用以下代码行包含multer模块。

const multer = require('multer');

1. 通过 fileSize 限制用户:

示例: Multer 提供了一个叫做 limits 的属性,我们可以在其中定义文件大小。

// Requiring the multer module in our project 
const multer = require('multer'); 
const upload = multer({ 
    dest: 'src', 
    limits: { 
  
        // Here we have to give size in bytes  
        fileSize: 1000000; 
    } 
})

输出:

Node.js 如何添加文件上传的身份验证

在上述代码中,我们通过指定程序仅接受大小小于或等于指定大小的文件来限制用户。

在上述图像中,我们试图上传一个大于1MB的图像,所以它给了我们一个错误。

2. 通过文件类型限制

示例: multer有一个名为fileFilter的函数,它让我们可以访问文件对象,然后在其中执行必要的操作。

// Requiring the multer module in our project 
const multer = require('multer'); 
const upload = multer({ 
  
    // dest is the destination where file will be stored 
    dest: 'src', 
    fileFilter(req, file, cb) { 
  
        // We are providing a regular expression  
        // which accepts only jpg,jpeg and png 
        if (!file.originalname.match(/\.(png|jpg|jpeg)$/)) { 
            return cb(new Error('Upload an image')); 
        } 
        cb(undefined, true); 
    } 
})

输出:

Node.js 如何添加文件上传的身份验证

在上述示例中,我们正在上传一个doc文件,但multer不接受它,因为我们只接受图片。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程