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

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

Linda Hamilton
發布: 2024-11-27 19:26:11
原創
559 人瀏覽過

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

Downloading Files from Node.js Server Using Express

Problem:
如何從儲存在伺服器中的某個檔案中,透過存取Node.js 伺服器中的頁面將檔案下載到本機?

解決方案:

使用Express.js 提供的輔助函數可以簡化這個過程:

app.get('/download', function(req, res){
  const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`;
  res.download(file); // Set disposition and send it.
});
登入後複製

舊版解決方案:

為了讓瀏覽器辨識檔案名稱,需要使用其他HTTP頭指定更多資訊:

res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV');
登入後複製

還可以發送MIME 類型,例如:

res.setHeader('Content-type', 'video/quicktime');
登入後複製

以下是更詳細的範例程式碼:

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);
});
登入後複製

請請注意,此範例程式碼使用了流來讀取文件,這是Node.js 中首選的非同步方法。

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

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