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

 2858

利用node怎么实现文件上传?下面本篇文章就来给大家介绍一下node结合multiparty实现文件上传的方法,希望对大家有所帮助!


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


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


1、模块

  1. npm i multiparty
  1. npm i express


2、代码

代码我们放在(upload.js)文件中,文件中代码如下:

  1. // 上传文件模块
  2. const multiparty = require('multiparty')
  3. // 文件操作模块
  4. const fs = require('fs')
  5. // 导入express框架
  6. const express = require('express')
  7. // 路由
  8. const router = express.Router()
  9. // 上传文件接口
  10. router.post('/upload/file', (req, res) => {
  11.     /* 生成multiparty对象,并配置上传目标路径 */
  12.     let form = new multiparty.Form();
  13.     // 设置编码
  14.     form.encoding = 'utf-8';
  15.     // 设置文件存储路径,以当前编辑的文件为相对路径
  16.     form.uploadDir = './public';
  17.     // parse,表单解析器
  18.     // fields :普通的表单数据
  19.     // files:上传的文件的信息
  20.     form.parse(req, function (err, fields, files) {
  21.         try {
  22.             // 文件为files.file[0]
  23.             let upfile = files.file[0]
  24.             // 为文件进行命名,修改upfile文件中的path,否则会随机生成文件名
  25.             let newpath = form.uploadDir + '/' + upfile.originalFilename  //文件名
  26.             // 重命名
  27.             fs.renameSync(upfile.path, newpath);
  28.             // 返回信息,((upfile.size)/1048576).toFixed(2)将文件由B转换为M的单位并进行取小数点后两位进行四舍五入向上取操作
  29.             res.send({
  30.                 code:200,
  31.                 msg:'File Success',
  32.                 file_name:upfile.originalFilename,
  33.                 file_size:((upfile.size)/1048576).toFixed(2)+'M'
  34.             })
  35.         } catch {
  36.             //    异常情况下的消息
  37.             console.log(err)
  38.             res.send({
  39.                 code:401,
  40.                 msg:'File error',
  41.                 more_msg:err
  42.             })
  43.         }
  44.     })
  45. })
  46. // 导出该模块供main主函数文件中进行调用
  47. module.exports = router


3、main.js文件

  1. // 引入express模块
  2. const express = require('express')
  3. // 实例化express
  4. const app = express()
  5. // 文件夹映射
  6. app.use('/static',express.static('public'))
  7. // 上传文件接口
  8. const upload=require('./router/upload')
  9. app.use(upload)
  10. // 监听服务
  11. app.listen('3333', '0.0.0.0', (res) => {
  12.     console.log('Server running http://127.0.0.1:3333')
  13. })


4、示例


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

本文网址:https://www.zztuku.com/detail-12432.html
站长图库 - 聊聊node+multiparty怎么实现文件上传
申明:如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐