2017-11-14 13 views
0

私のダウンロードフォルダにファイルをダウンロードしたい。ファイルはアップロードフォルダにあり、両方のフォルダは同じディレクトリにあります。ファイル名はBasicUserFile-id.jpgファイルが反応してノードjsにダウロードされない

/// 2回目の試み:今回はファイル名をハードコーディングして取得しようとしていますが、空のファイルがダウンロードされています。

app.js

Filedownload(e) { 

    e.preventDefault(); 

    var id = this.props.params.id; 

    console.log(id); 

    $.ajax({ 
     type: 'GET', 
     url: '/download/' + id, 
     success: function (data, textStatus, request) { 
     window.open('./downloads/ ', '_self'); 
     } 

    }); 

    } 


    <button type="button" value="Download File" onClick={this.Filedownload} 
    className="btn btn-success btn-lg">Download file</button> 

////server.js

app.get('/download/:id', function(req, res){ 
    var basic_id = req.params.id 
    var file = __dirname + '/uploads/BasicUserFile-'+ basic_id+ ".jpg"; 
    res.download(file); 
}); 

///第二トライ。

Filedownload(e) { 

    e.preventDefault(); 

    $.ajax({ 
     type: 'GET', 
     url: '/download/' , 
     success : function(data) 

     { 

     fileDownload(data, 'filename.jpg'); 
     console.log("file downloaded") 


     } 


    }); 

    } 

///サーバー

app.get('/download/', function(req, res){ 

    var file = __dirname + '/uploads/BasicUserFile-5a093a24870eb12148262248.jpg'; 
    res.download(file); 
}); 

答えて

1

クライアント上のあなたの呼び出しはGETのためですが、あなたのサーバがPOSTを定義します。標準への準拠のために、そのようなGETリクエストを受け入れるようにサーバーを変更します。

app.get('/download/:id', function(req, res){ 
    var basic_id = req.params.id 
    var file = __dirname + '/uploads/BasicUserFile-'+ basic_id+ ".jpg"; 
    res.download(file); 
}); 

はまた、それはあなたが、クライアントがどのような場合には右URLを構築するので、あなたを確認しているかどうかを投稿したものから、はっきりしていませんそれをもう一度チェックしてください。

+0

編集済み! @Paul –

関連する問題