2017-11-22 8 views
0

エクスプレスjsでファイルをダウンロードしています.Jsをajaxリクエストで反応させています。 pdf、php、zip、etcすべてのファイルがダウンロードされていますが、docxファイルをダウンロードしたいときは動作しません。エクスプレスとリアクトで文書ファイルがダウンロードされない

私のコードはすべてのタイプのファイルをダウロードしますが、docxファイルはダウロードしません。

フロントエンドコード

getfile(cell) { 



    console.log(cell) 

    var filename = cell ; 

    $.ajax({ 
     type: 'GET', 
     url: '/filedownload/' + filename, 
     success: function() { 
     window.open('/filedownload/' + filename, '_blank'); 
     } 
    }); 

    } 

サーバー側のコードは

app.get('/filedownload/:filename', function (req, res) { 

    var file = req.params.filename 

    res.download(__dirname + '/uploads/' + file); 

    }); 
+0

パスが.docxファイルのために正しく設定されていることを確かめていますか? –

+0

ええ、確信しています –

+0

[Expressを使用してNodeJS Serverからファイルをダウンロード](https://stackoverflow.com/questions/7288814/download-a-file-from-nodejs-server-using-express)の可能な複製 –

答えて

0

それはそのように動作しません。あなたがAJAXリクエストをした場合、あなたが得る最も可能性の高いものは、成功したファイルblobです。

thisを使用して、ajaxリクエスト後にクライアント上のファイルをダウンロードできます。

このlibに実際にあなたのようなURLから直接ダウンロードしてみましょう:あなたは確認する必要がありますあなたの場合は

// Using async/await ES6 javascript 

const res = await fetch(fileDownloadUrl); 

const fileBlob = await res.blob(); 

// using downloadjs https://www.npmjs.com/package/downloadjs 
download(fileBlob); 

:AJAX要求のためfetchを使用して

download("/robots.txt"); 

、私はこれをやりましたあなたはブロブを受け取る

関連する問題