>首页> IT >

【热闻】聊聊node+multiparty怎么实现文件上传

时间:2022-06-23 09:45:38       来源:PHP中文网


(资料图片仅供参考)

利用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")// 实例化expressconst 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中文网其它相关文章!

关键词: 文件上传 上传文件 相关文章