21xrx.com
2024-11-25 01:10:29 Monday
登录
文章检索 我的文章 写文章
使用Node.js批量上传本地文件
2023-07-05 02:32:12 深夜i     --     --
Node js 批量上传 本地文件

Node.js是非常强大的后端JavaScript框架,可以用它来编写Web服务器、API、命令行工具等等。在本文中,我们将看到如何使用Node.js批量上传本地文件。

在开始之前,我们需要安装以下几个库:busboy、fs、path、express和multer。它们的安装方法分别为:


npm install busboy --save

npm install fs --save

npm install path --save

npm install express --save

npm install multer --save

在安装完成后,我们可以开始编写我们的代码了。以下是一个示例代码,它可以实现将本地某个文件夹下的所有文件上传到特定的服务器:


const fs = require('fs');

const path = require('path');

const busboy = require('busboy');

const express = require('express');

const multer = require('multer');

const app = express();

const storage = multer.diskStorage({

  destination: function (req, file, cb) {

    cb(null, 'uploads/')

  },

  filename: function (req, file, cb) {

    cb(null, file.originalname)

  }

})

const upload = multer({ storage: storage })

app.get('/', function (req, res) {

 res.sendFile(path.join(__dirname, 'index.html'));

});

app.post('/upload', upload.array('files'), function (req, res, next) {

  const files = req.files;

  if (!files) {

   const error = new Error('Please upload a file')

   error.httpStatusCode = 400

   return next(error)

  }

 

  res.send(files);

});

app.listen(3000, function () {

 console.log('Example app listening on port 3000!');

});

其中,我们使用了Express.js来实现后端服务器,并使用了Multer库来处理文件的上传和存储。在Multer中,我们使用了DiskStorage来指定文件的存储位置和文件名。

在以上代码中,我们将上传表单中的所有文件(使用`upload.array('files')`)保存到指定目录中(`uploads/`)。上传完成后,服务器会向客户端发送所有上传的文件信息。

为了让客户端方便地上传文件,我们需要创建一个上传表单。以下是一个简单的HTML代码,可以创建一个上传表单:


<!DOCTYPE html>

<html>

<head>

 <title>File Upload Example</title>

</head>

<body>

 <form method="POST" enctype="multipart/form-data" action="/upload">

  <input type="file" name="files" multiple>

  <button type="submit">Upload Files</button>

 </form>

</body>

</html>

在实际应用中,我们可以将以上代码修改为符合自己需求的代码。例如,我们可以将文件上传的路径、文件存储的方式等进行适当的修改。

总之,Node.js和Multer使得文件上传变得十分简单。使用它们,我们可以更加方便地进行大规模文件上传任务,提高了我们的开发效率。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复