2017-11-08 23 views
0

私はユーザーがSFTPサーバーからファイルを直接ダウンロードできるようにしたいのですが、ブラウザにあります。たとえば、ユーザーは「ノイズ」というオーディオファイル名を検索したい場合は、パラメータを入力し、ダウンロードするボタンが表示されます。私はWebアプリケーションのフレームワークとして、またejとしてexpressを使用しています。ノードを使用してSFTPサーバーからファイルをダウンロードする方法

以下のコードのようにSFTP経由でダウンロードする方法がありますが、これはユーザーのディスクではなく自分のアプリケーションフォルダから保存されます。あなたがボタンを介してそれらにオプションを与えることによって、SFTPからユーザーのディスクに直接ダウンロードすることができますどのように

 sftp.connect(config).then(() => { 
      sftp.get('file.wav').then((data) => { 
       var outFile = fs.createWriteStream('file.wav') 
       data.on('data',function(response) { 
       outFile.write(response); 
       }); 
       data.on('close', function() { 
       outFile.close(); 
       }); 
      }); 
     }) 

+0

httpの設定方法を指定していません。あなたは急行を使用していますか? – dzm

+0

はい、申し訳ありません。 – carly

答えて

0

ストリームをresにパイプします。例:

router.get('/download', (req, res) => { 
    sftp.connect(config).then(() => { 
     sftp.get('file.wav').then((data) => { 
     res.pipe(data) 
     }) 
    }) 
}) 
+0

私はこのルートを ' Download file'のように呼んだ。いったんhrefをクリックすると、何も出さずにロードリクエストが送られてきました。起こり得る問題は何かを知ることができますか? – carly

関連する問題