21xrx.com
2025-03-22 23:13:13 Saturday
文章检索 我的文章 写文章
Node.js实现文件的下载和上传到服务器
2023-06-26 01:18:01 深夜i     32     0
Node js 文件下载 文件上传 服务器

Node.js是一种基于JavaScript的服务器端编程语言,它提供了一种简单而高效的方式来实现文件的下载和上传到服务器。在这篇文章中,我们将介绍如何使用Node.js来实现文件的下载和上传。

1. 文件下载

文件下载是将文件从服务器传输到客户端的过程。在Node.js中,我们可以使用以下代码实现文件的下载:

const http = require('http');
const fs = require('fs');
http.createServer(function(req, res) {
 const file = fs.createReadStream('test.txt');
 res.writeHead(200, {'Content-Type': 'text/plain'});
 file.pipe(res);
}).listen(8080);
console.log('Server running at http://localhost:8080/');

在上述代码中,我们使用了Node.js中的http模块和fs模块来实现文件的下载。首先,我们通过fs.createReadStream()方法来创建一个可读流,它将读取我们要下载的文件。然后,我们使用res.writeHead()方法来设置响应的http头,并指定文件类型为text/plain。最后,我们将文件传输到客户端,通过使用file.pipe(res)实现。

2. 文件上传

文件上传是将文件从客户端传输到服务器的过程。在Node.js中,我们可以使用以下代码实现文件的上传:

const http = require('http');
const formidable = require('formidable');
const fs = require('fs');
http.createServer(function(req, res) {
 if(req.url == '/upload') {
  const form = new formidable.IncomingForm();
  form.parse(req, function(err, fields, files) {
   const oldPath = files.file.path;
   const newPath = __dirname + '/uploads/' + files.file.name;
   const newFile = fs.createWriteStream(newPath);
   fs.createReadStream(oldPath).pipe(newFile);
   newFile.on('close', function() {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.write('File uploaded and moved!');
    res.end();
   });
  });
 } else {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('<form action="upload" method="post" enctype="multipart/form-data">');
  res.write('<input type="file" name="file"><br>');
  res.write('<input type="submit">');
  res.write('</form>');
  return res.end();
 }
}).listen(8080);
console.log('Server running at http://localhost:8080/');

在上述代码中,我们使用了Node.js中的http模块、formidable模块和fs模块来实现文件的上传。当客户端向服务器发送一个包含文件的POST请求时,我们使用formidable.IncomingForm()方法来解析请求,并将文件保存在服务器上。然后,我们使用fs.createReadStream()和fs.createWriteStream()方法来将文件从旧路径复制到新路径,并将它写入到服务器上的uploads目录中。最后,我们向客户端发送响应,告诉它文件已成功上传并移动到服务器上的uploads目录中。

总结:

Node.js提供了一种简单而高效的方式来实现文件的下载和上传。使用上述代码,您可以在您的服务器上实现文件的下载和上传功能。这种方法对于许多应用程序都非常有用,如在线存储、博客平台、社交媒体等。您可以根据您的应用程序需求进行调整和定制化。

  
  

评论区