作者信息

青灯夜游

今天学习一小步,明天提升一大步

最近文章
php怎么利用for循环求数组的和526
mysql怎么删除外键关系290
php怎么改变数组key的值628
视频教程分类
推荐视频教程
  • php程序员小白到大牛三个月集训php程序员小白到大牛三个月集训
  • Laravel 9 学习正当时—保姆级教程,想学不会都难!Laravel 9 学习正当时—保姆级教程,想学不会都难!
  • 千万级数据并发解决方案(理论+实战)千万级数据并发解决方案(理论+实战)
  • Laravel基础与实战(模块化)Laravel基础与实战(模块化)
  • 首页 >web前端 >js教程 > 正文

    聊聊node+multiparty怎么实现文件上传

    原创2022-06-23 10:05:31814 关注公众号:每天精选资源文章推送
    利用node怎么实现文件上传?下面本篇文章就来给大家介绍一下node结合multiparty实现文件上传的方法,希望对大家有所帮助!

    文件上传是每个项目中大概必不可少的操作,今天我们用nodejs实现一个文件上传模块。


    1.模块

    npm i multiparty
    npm i express

    2.代码

    代码我们放在(upload.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

    3.main.js文件

    // 引入express模块
    const express = require('express')
    // 实例化express
    const app = express()
    // 文件夹映射
    app.use('/static',express.static('public'))
    // 上传文件接口
    const upload=require('./router/upload')
    app.use(upload)
    // 监听服务
    app.listen('3333', '0.0.0.0', (res) => {
        console.log('Server running http://127.0.0.1:3333')
    })

    4.示例

    在这里插入图片描述
    收工

    更多node相关知识,请访问:nodejs 教程

    以上就是聊聊node+multiparty怎么实现文件上传的详细内容,更多请关注php中文网其它相关文章!

    20期PHP线上班

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

  • 相关标签:文件上传 node nodejs
  • 推荐:PHP从基础到实战教程视频

    相关文章

    相关视频


    专题推荐