3

ファイルをダウンロードする POST コマンドの発行に問題があります。

クライアント側では、ダウンロードするファイルを指定するパラメーターを含む特定の URL に POST しようとしています。

var req = $.ajax({
    type: 'POST',
    url : '/click',
    data: { 'path' : filename }
   });
req.done(function(data) {
// Download the file here?

サーバーは最終的にこれを行うメソッドを起動します。

function downloadFile(req, res) {
  var dir = req.session.currentdir + req.body.path;
  mimetype = (shell.exec("file --mime-type '" + dir + "'", {silent:true}).output);
  mimetype = mimetype.substring(mimetype.indexOf(": ") + 2, mimetype.length);

  var stat = fs.statSync(dir);
  res.writeHead(200, {'Content-Type' : mimetype,
                      'Content-Length': stat.size });
  var fileStream = fs.createReadStream(dir);
  fileStream.pipe(res);
};

今、私はクライアント側に、私がパイプしようとしているファイルを受け入れるようにさせることができないようです. . 閉じる前に信じられないほど長い間ハングします。返送しようとしているファイルをクライアントにダウンロードさせる適切な方法は何ですか?

お読みいただきありがとうございます。

4

1 に答える 1

5

1. resp.setHeader( "Content-Disposition", "attachment; filename=\"xxxx.xxx\"" );

2. Get を使用する方が良い

于 2012-05-02T08:50:57.663 に答える