鍍金池/ 問答/Linux  HTML/ Node.js如何返回ftp的文件給瀏覽器

Node.js如何返回ftp的文件給瀏覽器

Node.js中使用ftp包來進行文件的上傳下載,參照github上給的demo,現(xiàn)在已經(jīng)可以實現(xiàn)把ftp服務器上的文件下載到本地,代碼如下:

var tool = require('../utils/tool');
router.get('/download', function (req, res) {
    var url = req.query.url 

    var Client = require('ftp');
    var fs = require('fs');

    var c = new Client();
    c.on('ready', function() {
        c.get(url, function(err, stream) {
            if (err) throw err;
            stream.once('close', function() { c.end(); });
            stream.pipe(fs.createWriteStream('/Users/dbman/Desktop/test.txt'));
        });
    });

    var option={host:"","port":'',"user":"","password":""}  
    c.connect(option);

    var result = tool.responseSuccess('ok');
    return res.json(result);

});

現(xiàn)在我想實現(xiàn)這樣一個功能:用戶在瀏覽器中點擊一個按鈕的時候會調(diào)用上面所寫的那個接口,瀏覽器會彈出下載窗口并支持用戶自定義保存路徑。請問上面的接口應該如何修改呢?

回答
編輯回答
尐潴豬
  • .pipe(res);直接轉(zhuǎn)發(fā)ftp響應
  • Content-Disposition: attachment; filename="xxx"設(shè)置HTTP頭讓瀏覽器彈“保存為”
2018年1月30日 22:53