首頁 > web前端 > js教程 > 如何使用 Express 從 Node.js 伺服器下載檔案?

如何使用 Express 從 Node.js 伺服器下載檔案?

Barbara Streisand
發布: 2024-12-04 21:25:15
原創
785 人瀏覽過

How Do I Download Files from a Node.js Server Using Express?

使用 Express 從 Node.js 伺服器下載檔案

Node.js 的 Express 框架提供了一種將檔案從伺服器下載到客戶端的便捷方法。為此,請按照以下步驟操作:

設定標頭

發送檔案時,設定正確的 HTTP 標頭以向客戶端提供檔案名稱和類型等基本資訊至關重要。

  • Content-disposition:將此標頭設定為「附件」;檔案名稱='指定客戶端看到的檔案名稱。
  • Content-type:指示正在下載的檔案類型,例如「video/quicktime」。

非同步檔案流

為了提高效能,使用檔案流傳輸數據,而不是同步讀取整個檔案。這種方法可以最大程度地減少潛在的延遲或記憶體問題。

改進的解決方案

Express 現在包含用於文件下載的內建功能:

app.get('/download', function(req, res) {
  const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`;
  res.download(file); // Sets the appropriate headers and streams the file.
});
登入後複製

舊解決方案

在Express內建下載功能之前,以下程式碼提供了更全面的檔案下載解決方案:

var path = require('path');
var mime = require('mime');
var fs = require('fs');

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

  var file = __dirname + '/upload-folder/dramaticpenguin.MOV';

  var filename = path.basename(file);
  var mimetype = mime.getType(file);

  res.setHeader('Content-disposition', 'attachment; filename=' + filename);
  res.setHeader('Content-type', mimetype);

  var filestream = fs.createReadStream(file);
  filestream.pipe(res);
});
登入後複製

此解決方案包括:

  • 使用path.basename擷取檔案和文件名。
  • 使用node-mime確定內容類型。
  • 使用 fs.createReadStream 實現高效能檔案流。

作者遵循這些技術,您可以透過 Express 有效地從 Node.js 伺服器下載文件,確保客戶端正確接收並識別下載的內容。

以上是如何使用 Express 從 Node.js 伺服器下載檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板