Nodejs는 파일 업로드 이름을 구현합니다.

WBOY
풀어 주다: 2023-05-28 13:29:41
원래의
693명이 탐색했습니다.

크기 및 크기 제한

인터넷의 지속적인 발전으로 인해 파일 업로드는 많은 웹사이트에서 필요한 기능 중 하나가 되었습니다. Node.js에서는 다양한 모듈과 기술을 사용하여 파일 업로드를 구현할 수 있습니다. 아래에서는 Express 프레임워크를 기반으로 한 파일 업로드 방법을 소개하고 파일 업로드에 대한 크기 및 이름 제한을 구현하는 방법에 대해 설명합니다.

  1. 종속 모듈 설치

이 기사에서는 Express 프레임워크를 웹 서버로 사용하고 multer 모듈을 사용하여 파일 업로드를 처리합니다. 먼저 이러한 종속 모듈을 설치해 보겠습니다.

npm install express multer --save
로그인 후 복사
  1. 파일 업로드의 기본 사용법

다음은 기본 파일 업로드 경로의 예입니다.

const express = require('express');
const multer  = require('multer');

const app = express();
const upload = multer({ dest: 'uploads/' });

app.post('/upload', upload.single('file'), function(req, res) {
    res.send('文件上传成功!');
});

app.listen(3000, function() {
    console.log('服务器已启动,端口号:3000');
});
로그인 후 복사

위 코드에서는 multer의 upload.single</을 사용합니다. code> 메소드를 사용하여 파일 업로드를 처리하려면 단일 파일의 name 속성이 <code>file이어야 합니다. 업로드가 성공한 후 서버는 문자열을 반환합니다. upload.single方法来处理文件上传,单个文件的name属性必须是file。上传成功后,服务器返回一段字符串。

  1. 文件大小限制

现在我们来实现文件大小的限制,我们可以通过在multer的配置中指定limits属性来实现。示例如下:

const upload = multer({
  dest: 'uploads/',
  limits: {
    fileSize: 1024 * 1024 //限制1M
  }
});
로그인 후 복사

在上述示例中,我们设置上传文件的最大大小为1M(单位是字节)。如果上传的文件大小超过了这个值,multer会自动返回一个错误。我们可以在路由的回调函数中通过判断req.file是否存在来检查错误。示例如下:

app.post('/upload', upload.single('file'), function(req, res) {

    // 文件大小超出限制
    if (req.file.size > 1024 * 1024) {
        return res.status(400).send('文件大小不能超过1M');
    }

    res.send('文件上传成功!');
});
로그인 후 복사

在上述示例中,如果文件大小超出了1M,则返回400错误码和一段错误消息。

  1. 文件名称限制

如果我们想实现对上传的文件名进行限制,我们可以使用multer的fileFilter方法来实现。在fileFilter方法中,我们可以对上传的文件名进行判断,如果满足条件,则继续上传,否则抛出错误。示例如下:

const storage = multer.diskStorage({
    destination: function(req, file, cb) {
        cb(null, './uploads')
    },
    filename: function(req, file, cb) {
        // 只允许上传后缀名为jpg, jpeg和png的文件
        if (!/.(jpg|jpeg|png)$/.test(file.originalname)) {
            return cb(new Error('只能上传jpg, jpeg和png格式的图片'));
        }

        //自定义文件名称
        let timestamp = Date.now();
        cb(null, timestamp + '.' + file.originalname.split('.').pop());
    }
});

const upload = multer({
    storage: storage,
    limits: {
        fileSize: 1024 * 1024 //限制1M
    },
    fileFilter: function(req, file, cb) {
        // 检查文件类型
        if (!file.originalname.match(/.(jpg|jpeg|png)$/)) {
            return cb(new Error('只能上传jpg, jpeg和png格式的图片'));
        }

        // 继续上传
        cb(null, true);
    }
});

app.post('/upload', upload.single('file'), function(req, res) {
    res.send('文件上传成功!');
});
로그인 후 복사

在上述示例中,我们增加了一个filename方法,在文件上传之前对文件名进行判断并修改。另外,我们还使用fileFilter

    파일 크기 제한
    1. 이제 파일 크기 제한을 구현해 보겠습니다. Multer 구성에서 limits 속성을 ​​지정하면 됩니다. 예시는 다음과 같습니다.
    rrreee

    위 예시에서는 업로드되는 파일의 최대 크기를 1M(단위는 바이트)로 설정했습니다. 업로드된 파일 크기가 이 값을 초과하면 multer는 자동으로 오류를 반환합니다. req.file이 존재하는지 확인하여 경로의 콜백 함수에 오류가 있는지 확인할 수 있습니다. 예시는 다음과 같습니다.

    rrreee🎜위 예시에서 파일 크기가 1M를 초과하면 400 오류 코드와 오류 메시지가 반환됩니다. 🎜
      🎜파일 이름 제한🎜🎜🎜업로드된 파일 이름을 제한하려면 multer의 fileFilter 메소드를 사용하면 됩니다. fileFilter 메소드에서 업로드된 파일 이름을 판단할 수 있습니다. 조건이 충족되면 계속 업로드하고, 그렇지 않으면 오류가 발생합니다. 예시는 다음과 같습니다. 🎜rrreee🎜위 예시에서는 업로드 전 파일명을 판단하고 수정할 수 있도록 filename 메소드를 추가했습니다. 또한 fileFilter 메서드를 사용하여 파일 이름이 요구 사항을 충족하는지 확인합니다. 그렇지 않으면 오류가 발생합니다. 🎜🎜🎜요약🎜🎜🎜위의 예를 통해 Express 및 multer 모듈을 사용하여 파일 업로드와 크기 및 이름 제한을 구현하는 방법을 배웠습니다. 독자들이 실제 개발에 유연하게 적용할 수 있다고 생각합니다. 프로덕션 환경에서 파일 업로드에 대해 보다 엄격한 보안 검사 및 제한을 구현해야 한다는 점은 주목할 가치가 있습니다. 🎜

위 내용은 Nodejs는 파일 업로드 이름을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!