Maison  >  Article  >  interface Web  >  Parlons de la façon dont node+multiparty implémente le téléchargement de fichiers

Parlons de la façon dont node+multiparty implémente le téléchargement de fichiers

青灯夜游
青灯夜游original
2022-06-23 10:05:312289parcourir

Comment télécharger des fichiers en utilisant node ? L'article suivant vous présentera comment télécharger des fichiers à l'aide d'un nœud combiné à plusieurs parties. J'espère qu'il vous sera utile !

Parlons de la façon dont node+multiparty implémente le téléchargement de fichiers

Le téléchargement de fichiers est probablement une opération essentielle dans chaque projet. Aujourd'hui, nous utilisons nodejs pour implémenter un module de téléchargement de fichiers.


1. Module

npm i multiparty
npm i express

2. Code

Le code est placé dans le fichier (upload.js).

3. Fichier main.js

// 上传文件模块
const multiparty = require('multiparty')
// 文件操作模块
const fs = require('fs')
// 导入express框架
const express = require('express')
// 路由
const router = express.Router()
// 上传文件接口
router.post('/upload/file', (req, res) => {
    /* 生成multiparty对象,并配置上传目标路径 */
    let form = new multiparty.Form();
    // 设置编码
    form.encoding = 'utf-8';
    // 设置文件存储路径,以当前编辑的文件为相对路径
    form.uploadDir = './public';
    // parse,表单解析器
    // fields :普通的表单数据
    // files:上传的文件的信息
    form.parse(req, function (err, fields, files) {
        try {
            // 文件为files.file[0]
            let upfile = files.file[0]
            // 为文件进行命名,修改upfile文件中的path,否则会随机生成文件名
            let newpath = form.uploadDir + '/' + upfile.originalFilename  //文件名
            // 重命名
            fs.renameSync(upfile.path, newpath);
            // 返回信息,((upfile.size)/1048576).toFixed(2)将文件由B转换为M的单位并进行取小数点后两位进行四舍五入向上取操作
            res.send({
                code:200,
                msg:'File Success',
                file_name:upfile.originalFilename,
                file_size:((upfile.size)/1048576).toFixed(2)+'M'
            })
        } catch {
            //    异常情况下的消息
            console.log(err)
            res.send({
                code:401,
                msg:'File error',
                more_msg:err
            })
        }
    })
})
// 导出该模块供main主函数文件中进行调用
module.exports = router

4. Exemple

Parlons de la façon dont node+multiparty implémente le téléchargement de fichiersAppelez-le
Pour plus de connaissances sur les nœuds, veuillez visiter :

tutoriel nodejs

 !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn