如何使用Node.js中的formidable模块上传文件?

2021年3月23日14:54:02 发表评论 1,228 次浏览

formidable模块用于解析表单数据, 尤其是文件上传。它易于使用并集成到你的项目中, 以处理传入的表单数据和文件上载。

formidable模块的安装:

  1. 你可以访问链接安装formidable模块。你可以使用此命令安装此软件包。
    npm install formidable
  2. 安装formidable模块后, 可以使用命令在命令提示符下检查yargs版本。
    npm version formidable
  3. 之后, 你可以仅创建一个文件夹并添加一个文件, 例如index.js, 要运行此文件, 你需要运行以下命令。
    node index.js

文件名:index.js

const express = require( 'express' );
const fs = require( 'fs' );
const path = require( 'path' )
const formidable = require( 'formidable' );
   
const app = express();
   
app.post( '/api/upload' , (req, res, next) => {
    
     const form = new formidable.IncomingForm();
     form.parse(req, function (err, fields, files){
  
         var oldPath = files.profilePic.path;
         var newPath = path.join(__dirname, 'uploads' )
                 + '/' +files.profilePic.name
         var rawData = fs.readFileSync(oldPath)
      
         fs.writeFile(newPath, rawData, function (err){
             if (err) console.log(err)
             return res.send( "Successfully uploaded" )
         })
   })
});
   
app.listen(3000, function (err){
     if (err) console.log(err)
     console.log( 'Server listening on Port 3000' );
});

运行程序的步骤:

项目结构将如下所示:

项目结构

注意:"上载"是将文件上传到的文件夹。

确保使用以下命令安装了Express和功能formidable模块:npm install formidable npm install express

使用以下命令运行index.js文件:

node index.js
上面命令的输出

现在打开

邮差

运行此API并发送示例数据, 如下所示:

postman API

如上所示, 我们在正文中传递了两个字段, 一个是type ='Text'的名称, 另一个是type ='File'的profilePic。

现在转到你的上载文件夹, 你的文件被上载, 如下所示:

成功

因此, 这就是你可以使用formidable模块轻松有效地上传文件和处理传入表单数据的方式。


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: